関数に付与されている"->"は何?アノテーションについて解説
アノテーションとは?
pythonのコードを見ていると、関数定義の箇所に"->"という記載があります。
例えば、こんな感じです。
def say_hello(name: str) -> None: print(f"Hello, {name}!") result = say_hello("Alice") print(result) # None
これは、「アノテーション」と言って、変数や関数の引数、戻り値に型情報を付けることで、コードの可読性や保守性を向上させるための機能です。
通常は、型名を記述する必要はありませんが、自分のコードを他人に見せたり、他人のコードを読む際に、コメントがあった方が親切だよね、という意味を込めて使われます。
色々と例を見ていこうと思います。
1. 変数のアノテーション:
name: str = "John" age: int = 25 height: float = 175.5
上記の例では、name 変数に str 型、age 変数に int 型、height 変数に float 型というアノテーションを付けています。
2. 関数の引数と戻り値のアノテーション:
def add_numbers(x: int, y: int) -> int: return x + y
上記の例では、add_numbers 関数の引数 x と y に int 型のアノテーションを付け、戻り値の型を int 型として指定しています。
3. クラスのメソッドのアノテーション:
class Person: def __init__(self, name: str, age: int): self.name = name self.age = age def greet(self) -> str: return f"Hello, my name is {self.name}!"
上記の例では、Person クラスの init メソッドの引数 name と age に str 型と int 型のアノテーションを付け、greet メソッドの戻り値の型を str 型として指定しています。
ここで1点注意ですが、アノテーションは処理の内容に影響しません。そのため、エラー回避などにはならないことには注意してください。
まとめ
Pythonのアノテーションは、変数や関数の引数、戻り値に型情報を付けることで、コードの可読性や保守性を向上させるための機能です。ぜひ使ってみてください。