Quand je veux taper un Tuple dans Python comme:
def func(var: Tuple[int, int]):
# do something
func((1, 2)) # would be fine
func((1, 2, 3)) # would throw an error
Il est nécessaire de donner le nombre exact d'articles dans le tuple. C'est différent de l'indication de type de liste:
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
C'est en conséquence, en quelque sorte, à cause du type de tuples. Parce qu'ils sont conçus pour ne pas être modifiés, vous devez coder en dur la quantité d'éléments qu'il contient.
Ma question est donc la suivante: existe-t-il un moyen de rendre flexible le nombre d'éléments dans un indice de type Tuple? J'ai essayé quelque chose comme ça mais ça n'a pas marché:
def func(var: Tuple[*int]):
Oui, vous pouvez rendre flexible le nombre d'éléments dans un indice de type Tuple :
from typing import Tuple
def func(var: Tuple[int, ...]):
pass
À partir des documents: https://docs.python.org/3/library/typing.html#typing.Tuple
Pour spécifier un tuple de longueur variable de type homogène, utilisez des points de suspension littéraux, par ex.
Tuple[int, ...]
. UnTuple
simple équivaut àTuple[Any, ...]
, puis à son tour surTuple
.