2016-09-27 2 views
4

유형 힌트를 사용하여 실수를했기 때문에 제 질문이 다릅니다. enter image description herePycharm : 유형 힌트 목록

Example 내 자신의 클래스입니다 :

나는 pycharm에 힌지 이상한 형태를 발견했다. IDE가 list 타입에 대해 불평하면 __getitem__ 메소드를 정의하지 않기 때문에 이것이 중요하지 않다고 생각합니다. 그것이 버그인지 또는 잘못된 방식으로 사용했는지 궁금합니다.

답변

6

official PEP에 속하는 객체 목록을 표시하려면 list이 아니고 typing.List을 사용해야합니다.

from typing import List 


class Something: 
    pass 


def f(seq: List[Something]): # no warning 
    for o in seq: 
     print(o) 
+0

눈치 채지 못했습니다! 감사합니다 : D – spacegoing

2

Łukasz는 코드를 수정하는 방법을 설명했습니다. 왜 오류 메시지가 무엇을 말하는지 설명해 드리겠습니다.

list__getitem__을 정의하지만 오류 메시지가 불평하는 것은 아닙니다. 오류 메시지에 자체 인 list유형의 유형은 __getitem__을 지원하지 않습니다. list[whatever]을 유효하게하려면 type은 이 아니라 __getitem__ 메서드를 정의해야합니다.

+0

잘 알고 있습니다! 많은 감사 : D 조 – spacegoing