決定的な答えを見つけることができなかったようです。関数の型ヒントを実行したいのですが、その型はCustomClass()
と呼ばれる定義済みのカスタムクラスです。
そして、ある関数でFuncA(arg)
と呼びましょう。arg
という名前の引数が1つあります。ヒントFuncA
を入力する正しい方法は次のとおりです。
def FuncA(arg: CustomClass):
または次のようになります:
def FuncA(Arg:Type[CustomClass]):
?
former is correct、arg
がCustomClass
のインスタンスを受け入れる場合:
def FuncA(arg: CustomClass):
# ^ instance of CustomClass
クラスCustomClass
自体(またはサブタイプ)が必要な場合は、次のように記述する必要があります。
from typing import Type # you have to import Type
def FuncA(arg: Type[CustomClass]):
# ^ CustomClass (class object) itself
Typing に関するドキュメントに書かれているように:
class typing.Type(Generic[CT_co])
C
アノテーションが付けられた変数は、タイプC
の値を受け入れる場合があります。対照的に、変数Type[C]
アノテーションが付いたクラスは、それ自体がクラスである値を受け入れる場合があります-具体的には、C
のクラスオブジェクトを受け入れます。
ドキュメントには、int
クラスの例が含まれています。
a = 3 # Has type 'int' b = int # Has type 'Type[int]' c = type(a) # Also has type 'Type[int]'