Maison  >  Article  >  développement back-end  >  Les fonctions avec des arguments peuvent-elles être transmises à d’autres fonctions en Python ?

Les fonctions avec des arguments peuvent-elles être transmises à d’autres fonctions en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-23 07:13:30656parcourir

Can Functions with Arguments Be Passed to Other Functions in Python?

Passer des fonctions avec des arguments à une autre fonction en Python

Problème :

Est-ce faisable passer des fonctions avec des arguments à une autre fonction en Python ? Par exemple, nous voulons avoir une fonction appelée perform qui accepte d'autres fonctions comme arguments. Ces fonctions transmises peuvent avoir un nombre variable de paramètres, tels que action1(), action2(p) et action3(p,r).

Solution :

Oui , c'est possible en Python en utilisant des listes d'arguments de longueur variable (*args). Voici comment y parvenir :

<code class="python">def perform(fun, *args):
    fun(*args)

def action1(args):
    # Code for action1

def action2(args):
    # Code for action2

def action3(args, r):
    # Code for action3

perform(action1)       # No arguments
perform(action2, p)     # One argument
perform(action3, p, r)  # Two arguments</code>

Dans cet exemple, la fonction perform prend une fonction amusante et un nombre arbitraire d'arguments de position *args. Il appelle ensuite la fonction passée fun avec les arguments fournis.

En utilisant *args, vous pouvez transmettre des fonctions avec n'importe quel nombre d'arguments à la fonction perform. Les arguments seront automatiquement décompressés et transmis à la fonction sous-jacente.

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