IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

typing : A quoi correspond TypeVar ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Avril 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2021
    Messages : 1
    Par défaut typing : A quoi correspond TypeVar ?
    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

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par Haudelard Voir le message
    La ca me perd complètement : A quoi sert de mettre T en type hint si cela peut correspondre à n'importe quoi ?
    Si vous voulez une piste de réponse, il faut aller voir comment cela s'utilise dans des langages typés comme C++ ou Java et imaginer comment le compilateur va bien pouvoir s'en sortir.

    Pour faire simple, on parle de fabrication de classes "génériques". C'est un peu comme une fonction polymorphe (appelée avec des arguments de types différents) sauf que là on appelle pas une fonction mais on applique un prototype pour fabriquer différentes classes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2018, 01h05
  2. A quoi correspondent les requêtes de type "change db" ?
    Par Christophe Charron dans le forum Débuter
    Réponses: 2
    Dernier message: 27/02/2008, 19h22
  3. A quoi correspondent les commandes type AddIcon ?
    Par scda13 dans le forum Administration système
    Réponses: 1
    Dernier message: 22/12/2007, 13h53
  4. A quoi correspond le type mixed ?
    Par sliderman dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2007, 13h50
  5. [OPERATEUR] à quoi correspond : ^?
    Par fabszn dans le forum Langage
    Réponses: 3
    Dernier message: 24/03/2005, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo