Python でのタプルの型ヒント 質問する

Python でのタプルの型ヒント 質問する

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

おすすめ記事