您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python函数可以调用具有相同名称的全局函数吗?

python函数可以调用具有相同名称的全局函数吗?

Python的名称解析方案(有时称为“LEGB规则”)意味着,当您在函数中使用不合格的名称时,Python最多搜索四个范围- 是本地(L)范围,然后是任何封闭的(E)的本地范围defs和lambdas,然后是全局(G)范围,最后是内置(B)范围。(请注意,一旦找到匹配项,它将立即停止搜索

因此,当您sorted函数内部使用时,解释器会将其视为 名称(您的函数名称),因此您将拥有递归函数。如果要访问内置函数,则sorted需要为Python指定。按__builtin__模块()和builtins在Python-3.x中(此模块提供对Python的所有“内置”标识符的直接访问)

蟒蛇2:

import __builtin__
def sorted(services):
    return __builtin__.sorted(services, key=lambda s: s.sortkey())

的Python 3:

import builtins
def sorted(services):
    return builtins.sorted(services, key=lambda s: s.sortkey())
python 2022/1/1 18:44:37 有300人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶