Bitte beachten Sie die einfache Funktion:
%Vor% Wo param1
und param2
nicht erforderlich sein sollten, aber vom Benutzer festgelegt werden können. Wenn param2
nicht gesetzt ist, hängt der Wert in gewisser Weise von param1
ab.
Das obige Beispiel erhöht NameError: name 'param1' is not defined
Gibt es eine Möglichkeit, diese Art von Aufgaben in Python zu erledigen?
Eine Möglichkeit besteht darin, dies innerhalb der Funktion zu emulieren:
%Vor% Wenn param2=None
eine gültige Eingabe in fun()
ist, könnte die folgende Alternative eine bessere Alternative sein:
(Nachdem ich dieses zweite Beispiel für ein paar Minuten angeschaut habe, mag ich die is default
-Syntax sehr.)
Der Grund, warum die ursprüngliche Version nicht funktioniert, besteht darin, dass die Standardwerte zur Zeit der Funktionsdefinition berechnet und gebunden werden. Dies bedeutet, dass Sie keinen Standardwert haben können, der von etwas abhängt, das nicht bekannt ist, bis die Funktion aufgerufen wird (in Ihrem Fall der Wert von param1
).
Tags und Links python