J'enseigne un cours Python sur la programmation orientée objet et, alors que je m'entraîne à expliquer les classes, j'ai vu une définition de classe vide :
class Employee:
pass
L'exemple poursuit en définissant un nom et d'autres attributs pour un objet de cette classe :
john = Employee()
john.full_name = "john doe"
Intéressant !
Je me demande s'il existe un moyen de définir dynamiquement une fonction pour une instance d'une classe comme celle-ci ? quelque chose comme.. :
john.greet() = print 'Hello, World!'
Cela ne fonctionne pas dans mon interpréteur Python, mais existe-t-il un autre moyen de le faire ?
1 votes
Possible ? Oui. Une bonne idée ? Rarement (en dehors d'une certaine métaprogrammation, bien sûr).
4 votes
La définition de classe vide la plus courte que j'ai vue est celle de gossamer-threads.com/lists/python/python/832915#832915 :
Employee=type('Employee',(),{})
et ensuitejohn=Employee()
etc.