for
루프 에서 변수 유형에 주석을 달고 싶습니다. 나는 이것을 시도했다 :
for i: int in range(5):
pass
그러나 분명히 작동하지 않았습니다.
내가 기대하는 것은 PyCharm 2016.3.2에서 자동 완성 기능입니다. 다음과 같은 사전 주석 :
i: int
for i in range(5):
pass
도움이되지 않습니다.
PS 사전 주석은 PyCharm> = 2017.1에서 작동합니다.
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 에 따르면 다음은 허용되지 않습니다.
또한 또는 문에 사용 된 변수에 주석을 달 수 없습니다
for
with
. 튜플 압축 해제와 유사한 방식으로 미리 주석을 달 수 있습니다.
루프 전에 주석을 추가하십시오.
i: int
for i in range(5):
pass
PyCharm 2018.1 이상은 이제 루프 내부의 변수 유형을 인식합니다. 이전 PyCharm 버전에서는 지원되지 않았습니다.
Local variable 'i' value is not used
입니다.
i
인은 i: int
아직도 당신이 사용하는 경우에도 사용되지 않습니다 i
루프에서. 나는 이것이 이런 종류의 주석에 대한 결함이라고 생각합니다.
이 솔루션이 PEP와 호환되는지 아니면 PyCharm의 기능인지는 모르겠지만 이렇게 작동하도록 만들었습니다.
for i in range(5): #type: int
pass
Pycharm Community Edition 2016.2.1을 사용하고 있습니다.
for index, area in enumerate(area_list): # type: int, AreaInfo
이것은 PyCharm에서 잘 작동합니다 (Python 3.6 사용).
for i in range(5):
i: int = i
pass
i: int
충분하고 어떤 불만도 얻지 못할 것입니다.
당신이 할 수 없다는 것을 제외하고는 여기에 유용한 답변은 없습니다. 받아 들여지는 대답조차도 유효한 파이썬 구문이 아닌 PEP 526 문서의 구문을 사용합니다. 입력하려고하면
x: int
구문 오류라는 것을 알 수 있습니다.
다음은 유용한 해결 방법입니다.
for __x in range(5):
x = __x # type: int
print(x)
귀하의 작업을 수행 x
. PyCharm은 유형을 인식하고 자동 완성이 작동합니다.