你应该在 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中文网其他相关文章!