Stockage et exécution de fonctions avec des dictionnaires
En Python, les fonctions sont des objets de première classe, ce qui signifie qu'elles peuvent être stockées dans des structures de données et transmises autour comme variables. Cela ouvre des possibilités d'exécution dynamique de fonctions basées sur des entrées externes.
Une façon de réaliser le stockage et l'exécution des fonctions consiste à utiliser des dictionnaires. Les dictionnaires sont des collections de paires clé-valeur, où les clés peuvent être n'importe quel objet immuable, y compris les noms de fonctions.
Stockage de fonctions dans un dictionnaire
Pour stocker des fonctions dans un dictionnaire , attribuez l'objet fonction lui-même (et non le résultat de l'appel de la fonction) à la clé du dictionnaire. Par exemple :
<code class="python">dispatcher = {'foo': foo, 'bar': bar}</code>
Exécuter des fonctions à partir du dictionnaire
Pour exécuter une fonction stockée dans le dictionnaire, utilisez la touche du dictionnaire pour accéder à l'objet fonction, puis appelez la fonction normalement. Par exemple :
<code class="python">dispatcher['foo']() # Calls the foo function</code>
Stockage et exécution de plusieurs fonctions dans une liste
Si vous souhaitez stocker et exécuter plusieurs fonctions stockées dans une liste, vous pouvez créer un dictionnaire avec des clés qui représentent les scénarios d’exécution souhaités. Ensuite, vous pouvez utiliser une fonction d'assistance pour parcourir la liste de fonctions et exécuter chaque fonction. Par exemple :
<code class="python">dispatcher = {'foobar': [foo, bar], 'bazcat': [baz, cat]} def fire_all(func_list): for f in func_list: f() fire_all(dispatcher['foobar']) # Executes both foo and bar functions</code>
Conclusion
L'utilisation de dictionnaires pour le stockage et l'exécution des fonctions offre une flexibilité et une organisation du code. Il vous permet de sélectionner et d'exécuter dynamiquement des fonctions basées sur des entrées externes, rendant votre code plus efficace et plus maintenable.
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!