Pythonの関数で型を指定する:引数と返り値の型を指定しても、指定外の型も一応処理する
2022.11.20
Python の関数は引数と返り値の型を指定できます。下は型指定のないコードです。
def calc(a):
return a + 1
b = calc(1)
print(b) # 2
型を指定するには、変数の後にコロンを続けます。
def calc(a: int):
return a + 1
b = calc(1)
print(b) # 2
a: int とすると calc は整数のみを受けつけるようになります…と言いたいところですが、実はそうではありません。
def calc(a: int):
return a + 1
b = calc(1.6)
print(b) # 2.6
このコードはエラーが起きていません。ただし PyCharm などの開発環境は次のように表示します。
Python プログラムそのものはエラーを出さず、小数もきちんと処理します。
返り値の型を指定する
def calc(a: int) -> int:
return a + 1
b = calc(3)
print(b) # 4
返り値の型を指定するには矢印をコロンの前につけます。この場合も小数をきちんと受けつけます。
def calc(a: int) -> int:
return a + 1
b = calc(3.8)
print(b) # 4.8
Python の型チェックは厳密でなく、「型に合わないものは処理しない」わけでありません。