Heim >Backend-Entwicklung >Python-Tutorial >Gilt die Benennung von Lambdas in Python als pythonisch?
In Python sind Lambda-Ausdrücke als anonyme Funktionen konzipiert. Einige Entwickler finden es jedoch sinnvoll, Lambdas innerhalb von Funktionen für die Wiederverwendung von Code und bestimmte Funktionen zu benennen. Diese Praxis wirft jedoch die Frage auf: Ist sie mit den Pythonic-Prinzipien vereinbar?
Laut PEP8, dem Python-Styleguide, wird von der Benennung von Lambdas abgeraten. Stattdessen empfiehlt es die Verwendung von Def-Anweisungen, um Funktionen mit bestimmten Namen zu definieren. Dies gewährleistet Klarheit, vereinfacht Rückverfolgungen und eliminiert alle Vorteile der Verwendung von Lambda-Ausdrücken.
Das entscheidende Merkmal eines Lambda-Ausdrucks ist seine Anonymität. Indem Sie es benennen, beseitigen Sie effektiv diese Anonymität. Wenn die Funktionalität außerdem spezifisch für die Funktion ist, in der sie erscheint, ist die Definition einer separaten Funktion möglicherweise nicht erforderlich. Erwägen Sie stattdessen die Verwendung einer verschachtelten Funktion.
Zum Beispiel im angegebenen Codeausschnitt:
def fcn_operating_on_arrays(array0, array1): indexer = lambda a0, a1, idx: a0[idx] + a1[idx] # codecodecode indexed = indexer(array0, array1, indices) # codecodecode in which other arrays are created and require `indexer` return the_answer
Anstatt den Lambda-Ausdrucksindexer zu benennen, könnte er mithilfe einer verschachtelten Funktion definiert werden:
def fcn_operating_on_arrays(array0, array1): def indexer(a0, a1, idx): return a0[idx] + a1[idx] # codecodecode indexed = indexer(array0, array1, indices) # codecodecode in which other arrays are created and require `indexer` return the_answer
Durch die Verwendung einer verschachtelten Funktion bleibt die Funktionalität spezifisch für die äußere Funktion, stellt eine benannte Funktion bereit und entspricht Pythonic Prinzipien.
Das obige ist der detaillierte Inhalt vonGilt die Benennung von Lambdas in Python als pythonisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!