Python 3.10では、PEP 604の一部としてUnion型が導入されました。これにより、パラメータ、変数、または戻り値を複数のオプションのいずれかとして型付けすることが可能になりました。3.10より前では、typing.Union
が使用されていましたが、Python 3.10以降では、|
演算子を使用してunion操作を実行できます。
また、Pythonのtyping
ライブラリのList
は、リストとその要素の型を明示的に表現するために使用されます。List
はジェネリック型で、リストに格納される要素の型をパラメータとして持ちます。
from typing import List
def double_elements(numbers: List[int]) -> List[int]:
return [x * 2 for x in numbers]
上記のdouble_elements
関数は、整数のリストnumbers
を引数に取り、その各要素を2倍にした新たなリストを返します。引数と戻り値の型としてList[int]
を指定することで、この関数が整数のリストを扱うことを明示しています。
しかし、Python 3.10では、|
演算子を使用して、複数の型を持つリストを表現することが可能になりました。これにより、typing
ライブラリのUnion
やOptional
クラスのインポートが不要になり、コードがよりシンプルになりました。
value: int|str = 100
上記の例では、value
はint
型またはstr
型のいずれかを持つことができます。
これらの新機能は、Pythonの型アノテーションがより使いやすくなる一方で、コードの可読性を向上させ、開発効率を向上させることが期待されています。