Pythonのお勉強 Part70

■ このスレッドは過去ログ倉庫に格納されています
2023/03/04(土) 00:18:00.31ID:dUl31UkL0
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
574デフォルトの名無しさん (ブーイモ MMab-3wqI)
垢版 |
2023/07/22(土) 09:22:02.65ID:CGuNy4vJM
>>573
API設計の良し悪しは置いとくとして
何もしなくても関数の引数に違う型を渡すのは許されてる
type hintの話ならunion使えばいい
int | list[int]
オーバーロード的に別関数にしたいなら関数名を変える
575デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
垢版 |
2023/07/22(土) 09:27:38.97ID:i05cYusF0
listが一つの要素しか持たないときでも、例外を設けずlistを渡すべきだ。
2023/07/22(土) 09:28:28.85ID:2b3RUs8b0
自前で型を判定して分岐する。

def func(arg):
 if not isinstance(arg, list):
  arg = [arg]
 return arg

print(func(1)) # [1]
print(func([1,2,3])) # [1,2,3]

一応、オーバーロードっぽい書き方もできる。(結果は上と同じ)
singledispatch という名前の通り、先頭の引数にしか効かないけど。

from functools import singledispatch
@singledispatch
def func(arg):
 return [arg]
@func.register
def _(arg: list):
 return arg
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況