Heim > Backend-Entwicklung > Python-Tutorial > Gilt die Benennung von Lambdas in Python als pythonisch?

Gilt die Benennung von Lambdas in Python als pythonisch?

DDD
Freigeben: 2024-12-03 08:10:10
Original
931 Leute haben es durchsucht

Is Naming Lambdas in Python Considered Pythonic?

Ist die Benennung von Lambdas 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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage