Python でタプルにタイプヒントを指定したい場合:
def func(var: tuple[int, int]):
# do something
func((1, 2)) # would be fine
func((1, 2, 3)) # would throw an error
タプル内のアイテムの正確な数を指定する必要があります。これはリストの型ヒントとは異なります。
def func(var: list[int]):
# do something
func([1]) # would be fine
func([1, 2]) # would also be fine
func([1, 2, 3]) # would also be fine
それは、ある意味では、タプルの種類のせいです。タプルは変更できないように設計されているため、タプル内のアイテムの量をハードコードする必要があります。
私の質問は、タプル型ヒント内の項目の数を柔軟にする方法があるかどうかです。私はそのようなことを試しましたが、うまくいきませんでした。
def func(var: tuple[*int]):
ベストアンサー1
はい、できますタプル型ヒント内の項目数を柔軟にする。
Python 3.9 以降では次の操作を実行できます。
def func(var: tuple[int, ...]):
pass
Python 3.9 より前では次のようにします:
from typing import Tuple
def func(var: Tuple[int, ...]):
pass
ドキュメントより:https://docs.python.org/3/library/stdtypes.html#タプル
同種の可変長タプルを指定するには、リテラル省略記号を使用します
tuple[int, ...]
。例: プレーンtuple
は と同等でありtuple[Any, ...]
、 と同等ですtuple
。