[python] for 루프에서 유형에 주석을다는 방법

for루프 에서 변수 유형에 주석을 달고 싶습니다. 나는 이것을 시도했다 :

for i: int in range(5):
    pass

그러나 분명히 작동하지 않았습니다.

내가 기대하는 것은 PyCharm 2016.3.2에서 자동 완성 기능입니다. 다음과 같은 사전 주석 :

i: int
for i in range(5):
    pass

도움이되지 않습니다.

PS 사전 주석은 PyCharm> = 2017.1에서 작동합니다.



답변

PEP 526 에 따르면 다음은 허용되지 않습니다.

또한 또는
문에
사용 된 변수에 주석을 달 수 없습니다forwith . 튜플 압축 해제와 유사한 방식으로 미리 주석을 달 수 있습니다.

루프 전에 주석을 추가하십시오.

i: int
for i in range(5):
    pass

PyCharm 2018.1 이상은 이제 루프 내부의 변수 유형을 인식합니다. 이전 PyCharm 버전에서는 지원되지 않았습니다.


답변

이 솔루션이 PEP와 호환되는지 아니면 PyCharm의 기능인지는 모르겠지만 이렇게 작동하도록 만들었습니다.

for i in range(5): #type: int
  pass

Pycharm Community Edition 2016.2.1을 사용하고 있습니다.


답변

이것은 PyCharm에서 잘 작동합니다 (Python 3.6 사용).

for i in range(5):
    i: int = i
    pass


답변

당신이 할 수 없다는 것을 제외하고는 여기에 유용한 답변은 없습니다. 받아 들여지는 대답조차도 유효한 파이썬 구문이 아닌 PEP 526 문서의 구문을 사용합니다. 입력하려고하면

x: int

구문 오류라는 것을 알 수 있습니다.

다음은 유용한 해결 방법입니다.

for __x in range(5):
    x = __x  # type: int
    print(x)

귀하의 작업을 수행 x. PyCharm은 유형을 인식하고 자동 완성이 작동합니다.


답변