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 :

Nom d'instance dans une classe


Sujet :

Python

  1. #1
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut Nom d'instance dans une classe
    Bonjour,
    Sauriez vous comment afficher le nom d'une instance dans une classe ?
    Je n'arrive qu'à afficher le nom de la classe avec self.__class__.__name__

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class A:
      def aff(self):
        print "Nom de l'instance=", " je voudrais a1 puis a2"
     
    a1=A()
    a2=A()
    a1.aff()
    a2.aff()

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    tu peux utiliser un truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class A(object):
        def aff(self):
            print [k for k,v in globals().items() if v is self][0]
    mais c'est pas très beau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> a1 = A()
    >>> a2 = A()
    >>> a1.aff()
    a1
    >>> a2.aff()
    a2
    >>> a3 = a1
    >>> a3.aff()
    a1
    >>> a1 = None
    >>> a3.aff()
    a3

  3. #3
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut Impec
    Merci !!
    Cela suffira
    Je ne connaissais pas globals().items()

    C'est bizarre quand même que le nom de l'instance ne soit pas un attribut dans un appel de méthode d'une instance

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    C'est bizarre quand même que le nom de l'instance ne soit pas un attribut dans un appel de méthode d'une instance
    Je ne pense pas, le nom de l'instance n'est qu'une etiquette qui pointe vers l'espace memoire occupé par l'objet, il peux même ne pas avoir de nom et être un element d'une liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> l = []
    >>> for i in range(5):
    ...  l.append(A())
    ... 
    >>> for a in l: a.aff()
    ... 
    a
    a
    a
    a
    a
    Baser son code sur un nom d'instance, je ne suis pas contre, même si je suis loin d'être pour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel d'une instance dans une classe
    Par Minos2 dans le forum Apple
    Réponses: 0
    Dernier message: 05/02/2010, 12h18
  2. Stocker une instance d'une classe perso dans un SharedObject ?
    Par Pokefan + dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 30/08/2007, 10h04
  3. Sauvegarder une instance d'une classe Java dans une BDD MySQL
    Par malag dans le forum Administration
    Réponses: 1
    Dernier message: 03/09/2006, 19h23
  4. Réponses: 2
    Dernier message: 17/01/2006, 13h18

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