Sollten Sie Lambdas in Python benennen?
Lambda-Ausdrücke bieten eine prägnante und bequeme Möglichkeit, anonyme Funktionen in Python zu definieren. Allerdings ist es oft verlockend, Lambdas innerhalb von Funktionen Namen zuzuweisen, um Code wiederzuverwenden und spezifische Funktionen zu nutzen.
Kritik an der Benennung von Lambdas
Diese Vorgehensweise mag zwar praktisch erscheinen, ist sie aber gilt im Allgemeinen als nicht-pythonisch und widerspricht der Empfehlung von PEP8. In PEP8 heißt es:
„Verwenden Sie immer eine Def-Anweisung anstelle einer Zuweisungsanweisung, die einen Lambda-Ausdruck direkt an einen Bezeichner bindet.“
Der Grund für diese Empfehlung ist, dass die Definition eines Lambda als Funktion:
Beispiel
Betrachten Sie die in der Frage bereitgestellte Beispielfunktion:
def fcn_operating_on_arrays(array0, array1): indexer = lambda a0, a1, idx: a0[idx] + a1[idx] # ... indexed = indexer(array0, array1, indices) # ...
Anstatt ein benanntes Lambda zu verwenden, it Es ist pythonischer, einen separaten, explizit benannten zu definieren Funktion:
def index_array(a0, a1, idx): return a0[idx] + a1[idx] def fcn_operating_on_arrays(array0, array1): # ... indexed = index_array(array0, array1, indices) # ...
Fazit
Obwohl die Zuweisung von Namen zu Lambdas in bestimmten Situationen nützlich erscheinen mag, wird dies nicht empfohlen. Befolgen Sie stattdessen das pythonische Prinzip der Verwendung expliziter Funktionsdefinitionen, um Klarheit, Lesbarkeit und die Einhaltung bewährter Methoden zu gewährleisten.
Das obige ist der detaillierte Inhalt vonBenennen oder nicht benennen: Wann sollten Sie Lambdas in Python Namen zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!