J'aurais ajouter une méthode à un Comment puis-je faire? J'ai essayé de cette façon p> mais si je le fais: p> J'ai p> au lieu de J'ai cette classe: p> J'appellerais: p> et avez le dos Classe code> dynamiquement ... Le nom de la fonction sera également passé de manière dynamique.
var code>: ..... p>
auto.dimension code> mais je ne sais pas
nom code> à l'avance p> p>
4 Réponses :
Ceci est mon décorateur ceci est un exemple de méthode p> ceci est une classe décorée p> J'espère que cela est utile et ce dont vous avez besoin :) p> p>
def __init__(self): cls.c += 1 # +1 to CLS, not self! cls.__init__
Voici une solution PY3 simplifiée
class A(object): def a(self): print('a') def add_b(cls): def b(self): print('b') setattr(cls, 'b', b) return cls @add_b class C(A): pass C().b() # 'b'
C'est la plus élégante de toutes les solutions ici
class Foo: pass @add_method(Foo) def bar(self, parameter1): pass # Do something where self is a class instance
Afficher un exemple du code que vous espérez utiliser pour attacher la méthode à la classe. Je n'ai aucune idée de la manière dont vous pourriez avoir une méthode que vous souhaitez attacher, mais que vous n'avez aucune sorte de nom pour cela. Je n'ai pas non plus aucune idée de la manière dont vous vous attendez à ce que la méthode ait logique d'être attachée à la classe, si la classe n'a pas été conçue avec cette méthode en premier lieu.
Années plus tard, mais montrant une bonne et simple solution: MOYENCH.COM/@MGAROD/...