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é :
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
Je viens juste d'y penser, mais si ça se trouve y'a mieux à faire, donc si vous connaissez mieux, n'hésitez pas