首頁 >後端開發 >Python教學 >Python 中的 Lambda 命名是否被視為 Pythonic?

Python 中的 Lambda 命名是否被視為 Pythonic?

DDD
DDD原創
2024-12-03 08:10:10884瀏覽

Is Naming Lambdas in Python Considered Pythonic?

命名 Lambda 是 Python 式的嗎?

在 Python 中,lambda 表達式被設計為匿名函數。然而,一些開發人員發現在函數內命名 lambda 有助於程式碼重複使用和特定功能。然而,這種做法提出了一個問題:它符合 Pythonic 原則嗎?

根據 Python 風格指南 PEP8,不鼓勵命名 lambda。相反,它建議使用 def 語句來定義具有特定名稱的函數。這確保了清晰度,簡化了回溯,並消除了使用 lambda 表達式的任何好處。

lambda 表達式的定義特徵是其匿名性。透過命名,您可以有效地消除匿名性。此外,如果該功能特定於它出現的函數,則可能不需要定義單獨的函數。考慮使用巢狀函數。

例如,在給定的程式碼片段中:

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

與其命名lambda 表達式索引器,不如使用巢狀函數來定義它:

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

透過使用巢狀函數,功能仍然特定於外部函數,提供命名函數,並遵循Pythonic原則。

以上是Python 中的 Lambda 命名是否被視為 Pythonic?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn