Übergeben Sie leere / noop Funktion / Lambda als Standardargument

7

Das ist mein Code:

%Vor%

Ich möchte manchmal keine Funktion f an execute übergeben, also möchte ich, dass f standardmäßig auf die leere Funktion gesetzt wird.

    
Randomblue 11.01.2012, 11:07
quelle

3 Antworten

6

Ich verstehe nicht sehr gut, was du versuchst zu tun Aber würde so etwas für dich funktionieren?

%Vor%

Sie können auch eine else-Anweisung hinzufügen, um zu tun, was Sie wollen.

    
Rik Poggi 11.01.2012, 11:20
quelle
10
  

Das Problem ist, dass manchmal kein Argument zur Ausführung übergeben werden soll. Daher möchte ich, dass die Funktion standardmäßig auf die leere Funktion gesetzt wird.

Funktioniert gut für mich:

%Vor%

Ich beachte, dass Ihr Beispiel versucht, f in der Implementierung zu verwenden, während Sie den Parameter function aufgerufen haben. Kann es wirklich so einfach sein? ;)

Das heißt, Sie müssen verstehen, dass Python nicht sagen kann, dass Sie das defaulted Argument überspringen wollen, es sei denn, es gibt überhaupt keine Argumente, also kann execute(0) nicht funktionieren, da es 0 als a behandelt Funktion.

    
Karl Knechtel 11.01.2012 11:13
quelle
6

Eine anonyme Funktion, die None zurückgibt, ist oft ein passendes No-Op:

%Vor%     
minism 18.10.2012 22:37
quelle

Tags und Links