変数の型ヒントを関数型として指定するにはどうすればいいでしょうか? はなく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]