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!