Maison  >  Article  >  développement back-end  >  Comment stocker et exécuter des fonctions en Python à l’aide de dictionnaires et de listes ?

Comment stocker et exécuter des fonctions en Python à l’aide de dictionnaires et de listes ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 22:40:28265parcourir

How can you store and execute functions in Python using dictionaries and lists?

Stockage et déclenchement de fonctions en Python

Pour éviter les instructions def lourdes et faciliter la gestion de plusieurs fonctions, nous explorons une méthode pour stocker les fonctions dans des structures de données, permettant leur exécution lorsqu'elles sont indexées ou saisies.

Utilisation d'un dictionnaire pour la répartition des fonctions

Les fonctions sont des objets de première classe en Python, permettant de les stocker et distribué à l'aide de dictionnaires. Prenons l'exemple suivant :

<code class="python">dispatcher = {'foo': foo, 'bar': bar}</code>

Dans ce dictionnaire, foo et bar sont des objets fonction, et non des instances appelables (par exemple, foo() ou bar()). Pour invoquer foo, utilisez :

<code class="python">dispatcher['foo']()</code>

Stockage de plusieurs fonctions dans une liste

Si vous souhaitez exécuter plusieurs fonctions regroupées dans une liste, une approche possible est :

<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'])</code>

Dans ce cas, la clé 'foobar' correspond à une liste de fonctions. La fonction fire_all parcourt la liste et exécute chaque fonction.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn