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