首页 > 解决方案 > 内置函数名称作为标识符名称

问题描述

当我们分配一个引用内置函数的名称时,它没有抱怨。然而,当我们尝试在同一个内置函数中使用它时chr(chr),我们得到了符号中类的问题原因......问题是,这是否是 python 解释器中的一个错误?

for chr in range[69,91]:
    print(chr)      # no Error

但当

print(chr(chr))   # Throws an error.

标签: pythonpython-3.x

解决方案


我认为您混淆了范围和名称空间。

如果您没有为 分配任何chr,那么尝试引用它的值将导致在内置范围中找到名称,它指的是内置函数。

for循环执行分配之后,您chr当前范围内分配一个值,因此查找chr在该范围内成功,而不参考内置范围。

当您编写时chr(chr),会在当前作用域中查找这两个chr引用,并在其中找到名称来引用int. 没有两个命名空间,第一次使用(看起来像函数调用)与第二次使用不同。


推荐阅读