型ヒントを使用して複数の戻り値の型を指定する方法 質問する

型ヒントを使用して複数の戻り値の型を指定する方法 質問する

boolPython に、または を返すことができる関数があります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

おすすめ記事