Une fonction Python peut-elle être un argument d'une autre fonction?
Dire:
def myfunc(anotherfunc, extraArgs):
# run anotherfunc and also pass the values from extraArgs to it
pass
Donc, ce sont essentiellement deux questions:
- Est-ce autorisé du tout?
- Et si c'est le cas, comment utiliser la fonction à l'intérieur de l'autre fonction? Aurais-je besoin d'utiliser exec (), eval () ou quelque chose comme ça? Jamais eu besoin de jouer avec eux.
BTW, extraArgs est une liste / tuple des arguments d'un autrefunc.
Réponses:
Oui.
Pour être plus précis ... avec divers arguments ...
la source
Voici une autre façon en utilisant
*args
(et le cas échéant),**kwargs
:Production
Notez que
function
,*args
,**kwargs
doivent être dans cet ordre et doivent être les derniers arguments à la fonction appelant la fonction.la source
Les fonctions en Python sont des objets de première classe. Mais la définition de votre fonction est un peu décalée .
la source
Bien sûr, c'est pourquoi python implémente les méthodes suivantes où le premier paramètre est une fonction:
la source
anotherfunc(*extraArgs)
la source
Par exemple:
Lorsque vous appelez myfunc, vous faites ceci:
Cela imprimera la valeur de retour d'un autrefunc.
J'espère que cela t'aides!
la source
Fonction à l'intérieur de la fonction: nous pouvons également utiliser la fonction comme paramètre.
En d'autres termes, nous pouvons dire qu'une sortie d'une fonction est également une référence pour un objet, voir ci-dessous comment la sortie de la fonction interne fait référence à la fonction extérieure comme ci-dessous.
le résultat sera .. 14
J'espère que cela t'aides.
la source
la source
Je pense que ce serait un échantillon plus approprié. Maintenant, ce que je me demande, c'est s'il existe un moyen de coder la fonction à utiliser dans la soumission d'argument à une autre fonction. Je crois qu'il y en a en C ++, mais en Python, je ne suis pas sûr.
la source
Les décorateurs sont très puissants en Python car ils permettent aux programmeurs de passer une fonction en argument et peuvent également définir une fonction dans une autre fonction.
Production
la source