Ein passender 'do nothing' Lambda-Ausdruck in Python?

Finde ich manchmal mich selbst machen zu wollen Platzhalter 'nichts tun' lambda-Ausdrücke, ähnlich wie zu sagen:

def do_nothing(*args):
    pass

Aber die folgende syntax ist illegal, da lambda-Ausdrücke zu versuchen, um wieder, was nach dem Doppelpunkt, und Sie können nicht zurück pass.

do_nothing = lambda *args: pass

Also habe ich mich gefragt, würden Sie den folgenden Ausdruck ein geeigneter Ersatz für die oben genannten?

do_nothing = lambda *args: None

Da die do_nothing obige Funktion technisch gibt None, ist es okay, machen Sie einen lambda-Ausdruck zurückgibt None zu verwenden, als Platzhalter lambda-Ausdruck? Oder ist es schlechte Praxis?

Kommentar zu dem Problem
Es macht das gleiche wie do_nothing Funktion, aber es ist nicht klar, warum Sie benötigen, um ein lambda. Kommentarautor: BrenBarn
Ich wollte verwenden Sie lambda rein für die Lesbarkeit von code, da bin ich persönlich kein fan von geschachtelten Funktionen und die Anwendung, die ich nutzen wollte den Ausdruck in wäre eine Dritte verschachtelte Funktion. Ich bin auch einfach nur interessiert an anderen Meinungen über die Verwendung dieser Codierung trope. Kommentarautor: user3002473
In idiomatic Python, die meisten Orte, wo würden Sie brauchen einen do-nothing-Funktion accept None, auch wenn es immer noch nicht aufrufbar. Zu Witz: filter(None, alist) Kommentarautor: kojiro
Da alle do-nothing-Funktionen das gleiche tun nichts, Sie konnte einfach definieren do_nothing in einem Ort und dann übergeben Sie do_nothing, wenn Sie wollen, eine tun-nichts. Es gibt keine Notwendigkeit, neu zu definieren, es mit einer neuen lambda (oder full-function-def) jedes mal, wenn Sie es verwenden möchten. Kommentarautor: BrenBarn
verspotten.Mock() können Sie Ihre dummy aufrufbar, akzeptieren keine Parameter. Aber es gibt andere Verspotten und es kann dazu führen seltsame Fehler. Ändern Sie es auf verspotten.Mock(return_value=None) kann immer noch buggy, da kann man versuchen, ein Attribut aus, und es wird funktionieren, Rückkehr eine weitere Mock. Kommentarautor: Ctrl-C

InformationsquelleAutor der Frage user3002473 | 2014-03-29

Schreibe einen Kommentar