型ヒントで関数の型を指定するにはどうすればよいですか? 質問する

型ヒントで関数の型を指定するにはどうすればよいですか? 質問する

変数の型ヒントを関数型として指定するにはどうすればいいでしょうか? はなくtyping.Function、関連するPEPにも何も見つかりませんでした。ペップ483

ベストアンサー1

としてジョン・シャーペコメントで指摘されているように、これは次のように行うことができますtyping.Callable:

from typing import Callable

def my_function(func: Callable):

注: Callableは単独では と同等ですCallable[..., Any]。このような は、任意数と型の引数 ( )Callableを受け取り、任意の型の値( ) を返します。これがあまりに制約がない場合は、入力引数リストの型と戻り値の型を指定することもできます。...Any

たとえば、次の場合:

def sum(a: int, b: int) -> int: return a+b

対応する注釈は次のとおりです。

Callable[[int, int], int]

つまり、パラメータは外側のサブスクリプション内でサブスクリプト化され、戻り値の型は外側のサブスクリプションの 2 番目の要素になります。一般的には、次のようになります。

Callable[[ParamType1, ParamType2, ..., ParamTypeN], ReturnType]

おすすめ記事