Python 中的匿名函數命名:一種Pythonic 方法
在Python 中,lambda 表達式來提供了一種便捷的方式來建立匿名函數,從而快速、簡潔程式碼。然而,問題出現了:在函數中命名這些 lambda 是否符合 Python 標準?
根據 PEP8 風格指南,不鼓勵將 lambda 表達式直接指派給識別符。這種做法模糊了匿名函數和命名函數之間的區別,使得偵錯和程式碼可讀性變得更加困難。
何時避免命名 Lambda
根據經驗,避免命名如果該功能特定於封閉函數並且程式碼庫中的其他地方不需要,則為 lambda。在這種情況下,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 indexer(a0, a1, idx): return a0[idx] + a1[idx] def fcn_operating_on_arrays(array0, array1): indexed = indexer(array0, array1, indices) # codecodecode in which other arrays are created and require `indexer` return the_answer
以上是您應該在 Python 中命名匿名 Lambda 函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!