시퀀스 (예 : 목록)의 경우 __getitem__()
메서드는 단일 항목 또는 항목 시퀀스를 반환 할 수 있습니다. 예를 들어, 함수 장식 아래 :__getitem에 대한 올바른 유형 힌트 __()
def __getitem__(self, index) -> Union[Product, Generator[Product, None, None]]:
return super(Products, self).__getitem__(index)
사용 예제 :
i1 = 34
for product in products[i1:]:
print(product.name)
내가 올바른 것으로 Union[Product, Generator[Product, None, None]]
을 생각하지만, PyCharm 플래그이 같은 부적절한. 타이핑 라이브러리를 오용하고 있습니까? 아니면 PyCharm 문제입니까?
감사합니다.
'생성자'는 생성자 용이며 시퀀스 용입니다. – user2357112
그게 효과가 있지만 다른 질문 - 목록 또는 시퀀스? 표준 문서의 경우 : 1. [데이터 모델] (https://docs.python.org/3.5/reference/datamodel.html#the-standard-type-hierarchy)에 다음과 같이 명시되어 있습니다. "표현식으로 사용될 때, 슬라이스는 동일한 유형의 시퀀스입니다. 2. [typing] (https://docs.python.org/3/library/typing.html#typing.List)은 "List (list, MutableSequence [T]) 리스트의 일반적인 버전. 리턴 타입에 주석을 달 때 유용합니다. 인자에 주석을 달려면 매핑, 시퀀스 또는 AbstractSet과 같은 추상 콜렉션 유형을 사용하는 것이 가장 좋습니다. " – hansonap