你應該在 Python 中命名 Lambda 嗎?
Lambda 表達式提供了一種簡潔且方便的方法來在 Python 中定義匿名函數。然而,為了程式碼重用和特定功能,在函數中為 lambda 分配名稱通常很誘人。
命名 Lambda 的批判
雖然這種做法看起來很方便,但它通常被認為是非Pythonic並且違背了PEP8的建議。正如 PEP8 所說:
「總是使用 def 語句而不是將 lambda 表達式直接綁定到標識符的賦值語句。」
此建議背後的基本原理是將 lambda定義為function:
範例
考慮問題中提供的範例函數:
def fcn_operating_on_arrays(array0, array1): indexer = lambda a0, a1, idx: a0[idx] + a1[idx] # ... indexed = indexer(array0, array1, indices) # ...
而不是使用命名lambda,定義一個單獨的、顯式命名的更Pythonic function:
def index_array(a0, a1, idx): return a0[idx] + a1[idx] def fcn_operating_on_arrays(array0, array1): # ... indexed = index_array(array0, array1, indices) # ...
結論
雖然為 lambda 分配名稱在某些情況下似乎很有用,但不建議這樣做。相反,請遵循使用明確函數定義的 Pythonic 原則,以保持清晰度、可讀性並遵守最佳實踐。
以上是命名還是不命名:何時應該在 Python 中為 Lambda 指定名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!