日々精進

新しく学んだことを書き留めていきます

PythonのType Annotationは付けられない場合がある

以下のように、for文の中や複数の変数を1行で宣言する場合などはType Annotationが付けられない。まじか。。

for i: int in range(6):
  ...

j: int, k: int = func()

以下のように変数宣言を外だしすればAnnotationをつけられるが、読みづらくなるのでやりたくない。

i: int
for i in range(6):
  ...

現状は以下のルールで運用している。 ・PyCharmは型推論してくれるので、型推論が効く場合はType AnnotationなしでOK ・型推論が効かない場合は例えばTupleでなくデータを保持するクラスを作ってそのクラスのオブジェクト経由で渡すようにするとか別の方法でType Annotationをつける

Pythonは言語仕様がイマイチなところがいろいろあるなぁ。。いいところもあるんだけど。

参考:

www.python.org