J'avais besoin d'appeler différentes méthodes d'une classe dans une méthode d'elle-même sur la base d'une liste de noms de méthodes passés en entrée (pour exécuter des tâches périodiques dans FastAPI). Pour exécuter les méthodes des classes Python, j'ai étendu la réponse fournie par @khachik. Voici comment vous pouvez le réaliser depuis l'intérieur ou l'extérieur de la classe :
>>> class Math:
... def add(self, x, y):
... return x+y
... def test_add(self):
... print(getattr(self, "add")(2,3))
...
>>> m = Math()
>>> m.test_add()
5
>>> getattr(m, "add")(2,3)
5
Regardez attentivement comment vous pouvez le faire à partir de la classe en utilisant self
comme ça :
getattr(self, "add")(2,3)
Et de l'extérieur de la classe en utilisant un objet de la classe comme ceci :
m = Math()
getattr(m, "add")(2,3)