Pour générer des noms de fonctions dynamiquement, nous pouvons utiliser l'incroyable fonction getattr, voici un exemple basique :
In [1]: toto = "test" In [2]: getattr(toto, "split")('e') Out[2]: ['t', 'st']
On a “appelé” la méthode split associée à un string par son “nom”. Voici un autre exemple interactif :
>>> def prout(bla): ... print bla ... >>> from sys import modules >>> moimeme = modules["__main__"] >>> print moimeme <IPython.FakeModule instance>
Ici nous créons une fonction basique puis nous definissons un “faux” objet qui est la représentation de main
>>> getattr(moimeme, "pr" + "out")("beau") beau
Puis en utilisant cette fausse instance, nous construisons un nom de fonction en additionnant deux chaines de caractères dont le résultat est le nom de la fonction précedemment définie: l'appel via getattr() renvoie bien le résultat voulu.