Salut tout le monde,
Puisque dans python tout est objet, et que l'on peut également ajouter dynamiquement des attribut à une classe ou une de ses instances, je suppose qu'il doit bien y avoir un moyen d'ajouter de la même manière une ou plusieurs méthodes, non ? Si oui, quelle est-elle please ?
J'avais beau avoir cherché il y a quelque semaines de ça, je n'avais alors rien trouvé, mais c'est maintenant chose faite. C'est bon .
Pour ceux que ç intéresserait, voici la méthode que j'ai trouvé :
Je viens juste d'y penser, mais si ça se trouve y'a mieux à faire, donc si vous connaissez mieux, n'hésitez pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 >>> class A(object): pass >>> import re >>> def meth(className,functionCode): comp=re.compile('def (.*?)\(') methodName=comp.findall(functionCode)[0] exec(functionCode) exec("setattr({0},'{1}',classmethod({1}))".format(className,methodName)) >>> meth('A','def foo(cls): print "foo"') >>> A.foo() foo
Partager