i a trouvé vraiment bon exemple comment ajouter une nouvelle méthode À la classe dynamiquement (classe de transplantation): mais je ne comprends pas, comment le modifier pour ajouter des méthodes statiques. Quelqu'un peut-il m'aider? P> P>
3 Réponses :
Tout ce que vous avez à faire est d'envelopper la fonction dans un ou appliquez-le sous forme de décorateur à la définition de la fonction: p> qui se présente à la même chose. p> rappelez-vous; Le staticmethod () code> appel:
@Decorator code> Syntaxe est juste Syntaxtic Sugar pour écriture
cible = décorateur (cible) code>, où
cible code> est l'objet décoré. p> < / p>
Je ne vois pas un staticmethod ici. La fonction Il semble donc que vous essayiez simplement de joindre une nouvelle méthode à une classe. Qui peut être fait sans fonction de fonctionnement ni de transplantation: p> rendements p> Si vous vouliez attacher un StaticMethod, alors, comme la réponse de Martijnpieters répondit, utilisez le dire code> s'attend à ce que deux arguments, et le premier argument,
hôte code>, semble être l'instance de la classe.
StaticMethod Code> Decorator: P>
Goodbye
Eh bien les œuvres suivantes, c'est-à-dire la mise en place d'une méthode statique sur le patient que je pense que l'OP voulait.
Qu'entendez-vous par «statique»?
@ JooSimpileborg: le
@StaticMethod code> décorateur
.Et au fait, vous n'ajoutez pas les fonctions à la classe, vous les ajoutez à une instance de la classe. Si vous remplacez
jimmy code> dans les appels avec le patient
patient code>, vous ajoutez des méthodes à la classe.
@ JooSimpileborg: pour un
staticmethod code> pour fonctionner a i> à ajouter à la classe; C'est un descripteur.