このような機能がある場合:
def foo(name, opts={}):
pass
そして、パラメータに型ヒントを追加したいのですが、どうすればいいですか?私が仮定した方法では、構文エラーが発生します:
def foo(name: str, opts={}: dict) -> str:
pass
以下は構文エラーをスローしませんが、このケースを処理する直感的な方法のようには見えません:
def foo(name: str, opts: dict={}) -> str:
pass
typing
documentation またはGoogle検索で何も見つかりません。
編集:Pythonでデフォルトの引数がどのように機能するかは知りませんでしたが、この質問のために上記の例を保持します。一般に、次のことを行う方がはるかに優れています。
def foo(name: str, opts: dict=None) -> str:
if not opts:
opts={}
pass
私は最近このワンライナーを見ました:
def foo(name: str, opts: dict=None) -> str:
opts = {} if not opts else opts
pass
typing (Python 3.5で導入)を使用している場合は、typing.Optional
を使用できます。ここで、Optional[X]
はUnion[X, None]
と同等です。 None
の明示的な値が許可されていることを通知するために使用されます。 typing.Optional から:
def foo(arg: Optional[int] = None) -> None:
...