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

Gilt die Benennung von Lambdas in Python als pythonisch?

DDD
DDDOriginal
2024-12-03 08:10:10926Durchsuche

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

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!

Stellungnahme:
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