Nom de la classe

Le
Franssoa
Bonjour,
Je tourne en rond en cherchant à connaitre le nom d'une classe ou d'une
instance :

>>> Class test: pass
>>> Class test2(test): pass
>>> a = test()
>>> b = test2()
>>> a.__l_attribut_qui_va_bien__()
'test'
>>> b.__l_attribut_qui_va_bien__()
'test2'

Je suis surement passé à côté, mais je n'ai pas trouvé
--
Franssoa
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Salvatore DI DI0
Le #4678801
Bonsoir,
Ce qui est amusant en Python, c'est que nombre de concepts
sont 'presque' intuitifs.

Exemple :

Tu recherches le nom de la classe d'une instance d'objet : 'o'
La première idée qui vient à l'esprit : le mot 'class'
Sachant que le mot 'class' est un mot réservé on peut chercher __class__
Pour ce qui est du nom de la classe on peut penser à name soit __name__
Ce qui donne :
print t.__class__.__name__

Ceci dit il reste la doc ;-)

Cordialement

Salvatore





"Franssoa" 4808d922$0$9032$
Bonjour,
Je tourne en rond en cherchant à connaitre le nom d'une classe ou d'une
instance :

Class test: pass
Class test2(test): pass
a = test()
b = test2()
a.__l_attribut_qui_va_bien__()
'test'



b.__l_attribut_qui_va_bien__()
'test2'




Je suis surement passé à côté, mais je n'ai pas trouvé...
--
Franssoa





Salvatore DI DI0
Le #4678791
Ce qui donne :
print o.__class__.__name__
:-)




"Salvatore DI DI0" 4808e057$0$865$
Bonsoir,
Ce qui est amusant en Python, c'est que nombre de concepts
sont 'presque' intuitifs.

Exemple :

Tu recherches le nom de la classe d'une instance d'objet : 'o'
La première idée qui vient à l'esprit : le mot 'class'
Sachant que le mot 'class' est un mot réservé on peut chercher __class__
Pour ce qui est du nom de la classe on peut penser à name soit __name__
Ce qui donne :
print t.__class__.__name__

Ceci dit il reste la doc ;-)

Cordialement

Salvatore





"Franssoa" 4808d922$0$9032$
Bonjour,
Je tourne en rond en cherchant à connaitre le nom d'une classe ou d'une
instance :

Class test: pass
Class test2(test): pass
a = test()
b = test2()
a.__l_attribut_qui_va_bien__()
'test'



b.__l_attribut_qui_va_bien__()
'test2'




Je suis surement passé à côté, mais je n'ai pas trouvé...
--
Franssoa









Franssoa
Le #4678781
Ce qui donne :
print o.__class__.__name__
:-)
pfff... je ne rajouterais rien...

Merci, et mes plââtes excuses pour le bruit.
--
Franssoa

Salvatore DI DI0
Le #4678771
Ta question ne constitue en aucun cas du "brui"t . Si c'est le cas
alors je te peux te confirmer que côté vacarme j'assure aussi ;-)

Cordialement

Salvatore




"Franssoa" 4808e148$0$9035$
Ce qui donne :
print o.__class__.__name__
:-)
pfff... je ne rajouterais rien...

Merci, et mes plââtes excuses pour le bruit.
--
Franssoa



bruno.desthuilliers
Le #5148701
On 18 avr, 19:23, Franssoa
Bonjour,
Je tourne en rond en cherchant à connaitre le nom d'une classe ou d'une
instance :

Class test: pass
Class test2(test): pass
a = test()
b = test2()
a.__l_attribut_qui_va_bien__()
'test'



b.__l_attribut_qui_va_bien__()
'test2'




Je suis surement passé à côté, mais je n'ai pas trouvé...


Hint : la fonction dir(obj) peut t'aider à trouver les attributs d'un
objet.




yves
Le #5178641
Le Sat, 19 Apr 2008 08:37:51 -0700, a écrit:

Bonjour,

Hint : la fonction dir(obj) peut t'aider à trouver les attributs d'un
objet.


Ca a été mon réflexe suite à la question initiale.
Ca marche mal avec les données initiales:

/> class test(): pass
/> a = test()
/> a
/> dir(a)
['__doc__', '__module__']

Comme ceci, ça marche mieux:

/> class test(object): pass
/> a = test()
/> a
/> dir(a)
['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
'__hash__', '__init__', '__module__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__']


--
Yves

bruno.desthuilliers
Le #5243781
On 19 avr, 20:47, yves
Le Sat, 19 Apr 2008 08:37:51 -0700, a écri t:

Bonjour,

Hint : la fonction dir(obj) peut t'aider à trouver les attributs d'un
objet.


Ca a été mon réflexe suite à la question initiale.
Ca marche mal avec les données initiales:

/> class test(): pass


Mmm, Ok, je vois. Effectivement, sur une classe 'old-style', ça marche
moins bien. C'est vrai que dans la mesure où je ne les utilises pour
ainsi dire jamais, j'ai un peu tendance à oublier leur limitations.


Franssoa
Le #6149701
Mmm, Ok, je vois. Effectivement, sur une classe 'old-style', ça marche
moins bien. C'est vrai que dans la mesure où je ne les utilises pour
ainsi dire jamais, j'ai un peu tendance à oublier leur limitations.


Oui... et c'est de là que viens mon erreur. Effectivement avec une
définition "moderne" de classe ça marche mieux !

--
Franssoa

Publicité
Poster une réponse
Anonyme