実験:関数オーバーロード
せっかく型情報つけるんだから関数がオーバーロードできるといいなあ
def add1(a: int) -> int:
return a + 1
def add1(a: str) -> str:
return a + "1"
print(add1(3))
print(adds1("3"))
当然ダメ
$ python3 overload.py
Traceback (most recent call last):
File "/Users/takahiro/study/PCAD/overload.py", line 9, in <module>
print(add1(3))
File "/Users/takahiro/study/PCAD/overload.py", line 6, in add1
return a + "1"
TypeError: unsupported operand type(s) for +: 'int' and 'str'
mypyも文句言う
$ mypy overload.py
overload.py:4: error: Name 'add1' already defined on line 1
overload.py:8: error: Name 'adds1' is not defined
pythonは型ヒントを無視するのでこうなるしかないんですけど
残念