在Python中为内置函数赋予别名的目的是什么?

Bub*_*Gut 7 python

我正在阅读Python headq.merge的代码,看起来他们正在为内置函数创建别名_len = len.只是想知道它的目的是什么?

非常感谢!

che*_*ner 12

上下文是他们将全局名称分配给函数内的本地名称:

def merge(*iterables):
    ...
    _len = len
    ...
Run Code Online (Sandbox Code Playgroud)

期望是_len将多次使用,访问本地名称比重复查找全局名称更快.这是否会对整体运行时间产生重大影响只能通过对代码进行基准测试来确定.

  • @Aran-Fey检查内置模块是全局查找的一个阶段(`LOAD_GLOBAL`操作码). (3认同)
  • @Aran-Fey:我怀疑它是强制性的 - 编译器在编译阶段无法知道当代码实际运行时它是否会成为内置或"常规"全局.更一般地说,您可以拥有一个代码对象,该代码对象将根据其运行的环境实际获取内置函数或用户定义函数. (2认同)