前提
そもそもPythonでは引数や戻り値等の型を宣言する必要はない。
変数について型を宣言しないことで、柔軟かつ簡単にプログラムを記述できるというメリットがある。
一方、可読性の面では、場面ごとに各変数がどの型であるかを把握しづらくなるデメリットがあるといえる。
Pythonで型を明示する意義
引数や戻り値として想定される型を明示することで、コードの可読性と保守性を高める。
(あとで読んだときに理解しやすい)
※型を明示するが、処理として型安全性を保証するものではない。つまり、明示した型以外の値が変数に代入されても通常通り処理される。
アノテーション記法
Pythonでは、変数の型についての注釈(アノテーション)を記述するための記法としてアノテーション記法が用意されている。
次のように記述することで変数の型を明示することができる。
a: int = 10
b: bool = True
c: str = 'Hello'
これを用いて、次のように関数の引数も型を明示できる。
def func(a:int, b:bool, c:str):
print(a,b,c)
また、関数の戻り値については次のように表現する。
def func(a:int, b:bool, c:str) -> int:
return a * 10
戻り値が無い場合は次のようにする。
def func(a:int, b:bool, c:str) -> None:
print(a,b,c)
まとめ
- アノテーション記法を用いるとコードの可読性が上がる。
- アノテーションは処理には影響せず、型安全性は保証されないので注意。
参考