Quelle méthode est appelée lors du print d'une classe ?
Bonjour à tous
Petite question (j'ère sur la toile depuis pas mal de temps et je ne trouve pas la moindre piste ...) : Lorsque j'ai une classe, quelle méthode est appelée lorsque je print cette classe ? Je dit bien la classe (et pas une instance de cette classe).
Le but serait de faire qqch comme ceci :
Code:
1 2 3 4 5 6 7 8
| def MakeClass(clsname):
class Class():
name = clsname
return Class
X = MakeClass('X')
print(X) |
mais où print(X) me renverrai qqch contenant le nom donné en paramètre de la factory (ici 'X'), plutôt que :
Code:
<class '__main__.MakeClass.<locals>.Class'>
qui ne permet pas de faire la différence entre 2 classes différentes fabriquées avec cette même factory.
J'ai vu des choses comme ca aussi sur la toile :
Code:
1 2 3 4 5 6 7 8
| def MakeClass(clsname):
class Class(): pass
Class.__name__ = clsname
return Class
X = MakeClass('X')
print(X) |
mais bon à part définir un nouvel attribut (que ce soit name ou __name__) ça ne change manifestement pas grand chose puisque lorsqu'on fait print(X) ces attributs ne semblent pas utilisés.
Merci
Bonne journée