Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nom de la classe

8 réponses
Avatar
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

8 réponses

Avatar
Salvatore DI DI0
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" a écrit dans le message de news:
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





Avatar
Salvatore DI DI0
Ce qui donne :
print o.__class__.__name__
:-)




"Salvatore DI DI0" a écrit dans le message de news:
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" a écrit dans le message de news:
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









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

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

Avatar
Salvatore DI DI0
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" a écrit dans le message de news:
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



Avatar
bruno.desthuilliers
On 18 avr, 19:23, Franssoa wrote:
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.




Avatar
yves
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
<__main__.test instance at 0xb7d00aac>
/> dir(a)
['__doc__', '__module__']

Comme ceci, ça marche mieux:

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


--
Yves

Avatar
bruno.desthuilliers
On 19 avr, 20:47, yves wrote:
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.


Avatar
Franssoa
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