Bonjour,

Je suis en train d'essayer de progressivement intégrer le type hint et le typing a mon code python.

Cependant, je bloque actuellement sur une notion : TypeVar.

Je ne comprends pas du tout à quoi cela correspond. J'ai regardé la documentation officielle et cherché ailleurs mais j'ai du mal à en comprendre l'essence même : qu'est-ce c'est et quelle est son utilité ?

Par exemple dans la documentation officielle:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
T = TypeVar('T')  # Can be anything
A = TypeVar('A', str, bytes)  # Must be str or bytes
Pourquoi passe-t-on la string 'T' ? Et comment ça ca peut être n'importe quoi ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
def repeat(x: T, n: int) -> Sequence[T]:
    """Return a list containing n references to x."""
    return [x]*n
 
def longest(x: A, y: A) -> A:
    """Return the longest of two strings."""
    return x if len(x) >= len(y) else y
La ca me perd complètement : A quoi sert de mettre T en type hint si cela peut correspondre à n'importe quoi ?


Bref, je suis complètement confus avec cette notion et je serai gré à n'importe qui d'éclairer ma lanterne.

Merci d'avance

Haudelard