확실한 답을 찾지 못한 것 같습니다. 함수에 대한 유형 힌트를 수행하고 유형은 내가 정의한 사용자 지정 클래스 인 CustomClass()
.
그리고 어떤 함수에서 그것을 호출 해 봅시다 . FuncA(arg)
라는 하나의 인수가 arg
있습니다. 힌트를 입력하는 올바른 방법은 FuncA
다음과 같습니다.
def FuncA(arg: CustomClass):
또는 다음과 같습니다.
def FuncA(Arg:Type[CustomClass]):
?
답변
전자는 올 경우, 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
는 유형 값을 허용 할 수 있습니다C
. 반대로, 가변 주석이Type[C]
자신있는 클래스 값을 허용 할 수있다 – 즉, 그것은 허용 할 클래스 개체C
.
설명서에는 int
클래스 와 함께 예제가 포함되어 있습니다 .
a = 3 # Has type 'int' b = int # Has type 'Type[int]' c = type(a) # Also has type 'Type[int]'