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 :
mais où print(X) me renverrai qqch contenant le nom donné en paramètre de la factory (ici 'X'), plutôt que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 def MakeClass(clsname): class Class(): name = clsname return Class X = MakeClass('X') print(X)
qui ne permet pas de faire la différence entre 2 classes différentes fabriquées avec cette même factory.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <class '__main__.MakeClass.<locals>.Class'>
J'ai vu des choses comme ca aussi sur la toile :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 def MakeClass(clsname): class Class(): pass Class.__name__ = clsname return Class X = MakeClass('X') print(X)
Merci
Bonne journée
Partager