回答:
前者は正しいならば、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
それはタイピングに関するドキュメントに書かれているように:
class typing.Type(Generic[CT_co])注釈が付けられた変数
Cは、typeの値を受け入れる場合がありますC。対照的に、アノテーションが付けられType[C]た変数は、それ自体がクラスである値を受け入れる場合があります。具体的には、のクラスオブジェクトをC受け入れます。
ドキュメントには、intクラスの例が含まれています。
a = 3 # Has type 'int' b = int # Has type 'Type[int]' c = type(a) # Also has type 'Type[int]'
def foo(bar: 'Qux')することと等価であるdef foo(bar: Qux)ことがすぐにタイプをロードする必要がないことを除いて。
Typepy3.6以降から?ただNameError。