Appel de fonctions dynamiquement à l'aide de noms de chaînes
En Python, nous rencontrons souvent des situations où nous devons appeler une fonction de manière dynamique, en particulier lorsque nous travaillons avec code modulaire ou fonctions générées dynamiquement. Une façon d'y parvenir consiste à utiliser une chaîne contenant le nom de la fonction. Par exemple, nous pourrions avoir un module nommé foo avec une fonction nommée bar que nous voulons appeler.
Pour appeler la fonction dynamiquement en utilisant son nom de chaîne, nous pouvons exploiter la fonction getattr comme suit :
import foo func_name = "bar" bar = getattr(foo, func_name) result = bar() # calls foo.bar()
La fonction getattr récupère l'attribut d'un objet étant donné son nom sous forme de chaîne. Dans ce cas, il récupère la fonction bar du module foo. Nous pouvons ensuite invoquer la fonction en utilisant la référence récupérée (bar), qui appelle essentiellement foo.bar().
Cette approche offre une flexibilité lors du traitement de noms de fonctions dynamiques ou inconnus, nous permettant d'appeler des fonctions au moment de l'exécution. sur le nom de chaîne donné. Il est couramment utilisé dans des scénarios tels que la mise en œuvre de la répartition de méthodes, la personnalisation du comportement basé sur des chaînes ou le chargement dynamique de modules et l'appel de leurs fonctions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!