bool
Python に、または を返すことができる関数がありますlist
。型ヒントを使用して戻り値の型を指定する方法はありますか?
たとえば、これは正しいやり方でしょうか?
def foo(id) -> list or bool:
...
ベストアンサー1
ドキュメントより -ユニオンタイプ:
|
ユニオンオブジェクトは、複数の(ビットごとの)演算の値を保持します。タイプオブジェクトこれらのタイプは主に型注釈ユニオン型式は、より簡潔な型ヒント構文を可能にします。typing.Union
。
この使用法は|
Python 3.10 で追加されました。したがって、複数の戻りデータ型を表す適切な方法は次のとおりです。
def foo(client_id: str) -> list | bool:
以前のバージョンの場合は、typing.Union
:
from typing import Union
def foo(client_id: str) -> Union[list, bool]:
ただし、型付けは強制されないことに注意してください。Pythonは動的型付け言語であり続けます。アノテーション構文は、製品版にリリースされる前のコード開発を支援するために開発されました。ペップ484「実行時に型チェックは行われません」と述べています。
>>> def foo(a: str) -> list:
... return "Works"
...
>>> foo(1)
'Works'
ご覧のとおり、int 値を渡して str を返しています。ただし、__annotations__
それぞれの値に設定されます。
>>> foo.__annotations__
{'return': <class 'list'>, 'a': <class 'str'>}
どうぞご覧くださいペップ483型ヒントの詳細については、こちらを参照してください。Python 3.5 の型ヒントとは何ですか??
これはPython 3.5以降でのみ利用可能であることに注意してください。これはペップ484。