Pythonは動的型付け言語であり、変数の型を事前に宣言する必要はありません。しかし、型ヒントという機能を使うことで、関数の引数や戻り値の型を明示的に示すことができます。
型ヒントの基本
型ヒントは、関数の引数や戻り値に期待する型を示すためのものです。以下に示すgreeting
関数では、引数name
が文字列型であることを示し、戻り値も文字列型であることを示しています。
def greeting(name: str) -> str:
return 'Hello ' + name
型チェックの強制
Pythonのランタイムは型ヒントを強制しませんが、型チェッカーやIDE、リンターなどのサードパーティツールで使用できます。また、property
を使用して特定の属性に型制約を追加することも可能です。
class Foo(object):
def _get_bar(self):
return self.__bar
def _set_bar(self, value):
if not isinstance(value, int):
raise TypeError("bar must be set to an integer")
self.__bar = value
bar = property(_get_bar, _set_bar)
このコードでは、Foo
クラスのbar
属性が整数であることを強制しています。
型エイリアス
型エイリアスは、複雑な型シグネチャを簡素化するために使用できます。
from collections.abc import Sequence
type Vector = list[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
このコードでは、Vector
という新しい型エイリアスを作成し、それを関数scale
の引数と戻り値の型として使用しています。
以上がPythonで型を強制する基本的な方法です。型ヒントと型チェックを適切に使用することで、コードの可読性と保守性を向上させることができます。