首页 > 后端开发 > Python教程 > Python 中的 Lambda 命名是否被视为 Pythonic?

Python 中的 Lambda 命名是否被视为 Pythonic?

DDD
发布: 2024-12-03 08:10:10
原创
948 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板