Kann eine Python-Funktion ein Argument einer anderen Funktion sein?
Sagen:
def myfunc(anotherfunc, extraArgs):
# run anotherfunc and also pass the values from extraArgs to it
pass
Das sind also im Grunde zwei Fragen:
- Ist das überhaupt erlaubt?
- Und wenn ja, wie verwende ich die Funktion in der anderen Funktion? Würde ich exec (), eval () oder ähnliches verwenden müssen? Ich musste mich nie mit ihnen anlegen.
Übrigens ist extraArgs eine Liste / ein Tupel der Argumente einer anderen Funktion.
Antworten:
Ja.
Genauer gesagt ... mit verschiedenen Argumenten ...
quelle
Hier ist eine andere Möglichkeit
*args
(und optional auch)**kwargs
:Ausgabe
Beachten Sie, dass
function
,*args
,**kwargs
haben in dieser Reihenfolge zu sein und haben die letzten Argumente für die Funktion , um die Funktion aufrufen.quelle
Funktionen in Python sind erstklassige Objekte. Aber Ihre Funktionsdefinition ist ein bisschen anders .
quelle
Sicher, deshalb implementiert Python die folgenden Methoden, bei denen der erste Parameter eine Funktion ist:
quelle
anotherfunc(*extraArgs)
quelle
Beispielsweise:
Wenn Sie myfunc aufrufen, tun Sie Folgendes:
Dadurch wird der Rückgabewert einer anderen Funktion gedruckt.
Hoffe das hilft!
quelle
Funktion innerhalb der Funktion: Wir können die Funktion auch als Parameter verwenden.
Mit anderen Worten, wir können sagen, dass eine Ausgabe einer Funktion auch eine Referenz für ein Objekt ist. Sehen Sie unten, wie sich die Ausgabe der inneren Funktion wie unten auf die äußere Funktion bezieht.
das Ergebnis wird sein .. 14
Hoffe das hilft.
quelle
quelle
Das denke ich wäre eine passendere Probe. Ich frage mich nun, ob es eine Möglichkeit gibt, die Funktion zu codieren, die innerhalb der Argumentübermittlung an eine andere Funktion verwendet werden soll. Ich glaube, es gibt in C ++, aber in Python bin ich mir nicht sicher.
quelle
Dekoratoren sind in Python sehr leistungsfähig, da sie es Programmierern ermöglichen, Funktionen als Argumente zu übergeben und Funktionen auch innerhalb einer anderen Funktion zu definieren.
Ausgabe
quelle