for
-loop内の変数のタイプに注釈を付けたい。私はこれを試しました:
for i: int in range(5):
pass
しかし、明らかにそれは機能しませんでした。
私が期待しているのは、PyCharm2016.3.2でオートコンプリートが機能していることです。このような事前注釈:
i: int
for i in range(5):
pass
助けにはなりません。
PSプレアノテーションはPyCharm> = 2017.1で機能します
for
-loop内の変数のタイプに注釈を付けたい。私はこれを試しました:
for i: int in range(5):
pass
しかし、明らかにそれは機能しませんでした。
私が期待しているのは、PyCharm2016.3.2でオートコンプリートが機能していることです。このような事前注釈:
i: int
for i in range(5):
pass
助けにはなりません。
PSプレアノテーションはPyCharm> = 2017.1で機能します
回答:
PEP 526によると、これは許可されていません。
さらに、
for
orwith
ステートメントで使用される変数に注釈を付けることはできません。タプルの解凍と同様の方法で、事前に注釈を付けることができます
ループの前に注釈を付けます。
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
そして私はPycharmCommunity Edition2016.2.1を使用しています
for index, area in enumerate(area_list): # type: int, AreaInfo
これはPyCharmでうまく機能します(Python3.6を使用)
for i in range(5):
i: int = i
pass
i: int
十分であり、苦情はありません。
ここでの回答はどれも役に立ちませんでした。受け入れられた回答でさえ、有効なPython構文ではないPEP526ドキュメントの構文を使用しています。入力しようとすると
x: int
構文エラーであることがわかります。
便利な回避策は次のとおりです。
for __x in range(5):
x = __x # type: int
print(x)
で作業を行いx
ます。PyCharmはそのタイプを認識し、オートコンプリートが機能します。