web-dev-qa-db-ja.com

2つ以上の戻りパラメーターを持つ関数アノテーション

1つのパラメーターを返す関数の注釈を記述しても問題はありません。

def func() -> str:
    return "ok"

ただし、2つ以上のパラメーターを使用して注釈を作成すると、PyCharmによってSyntaxError: invalid syntax

def func() -> str, str:
    return "ok - 1", "ok - 2"

パラメータはTupleと組み合わせることができると思いますが、それが最良の方法だとは思いません。

私の質問は、2つ以上の戻りパラメーターを持つ関数に適切に注釈を付けるにはどうすればよいですか?

PEPリンクがある場合は、それを返信に含めてください。 PEP 484PEP 3107 で答えを探しましたが、見つかりませんでした。

16
Kirill

使用する typing.Tuple

from typing import Tuple

def func() -> Tuple[str, str]:
    return 'a', 'b'

概念的には、実際にはこれらの値を含む単一のTupleを返すため、これは適切です。注意:

print(type(func()))

出力:

<class 'Tuple'>

空のTuple())、 かっこはではありませんTuple を定義する必要はありません。つまり、'a', 'b'は、Tupleステートメントによって1つの値にまとめられるのではなく、returnとして作成されます。

24
gmds