Python 如何在运行时使用内置的?
为什么第一条语句返回Python 如何在运行时使用内置的?,python,Python,为什么第一条语句返回namererror,而max可用 >>> __builtin__ Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name '__builtin__' is not defined >>> max <built-in function max> >>> import
namererror
,而max
可用
>>> __builtin__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '__builtin__' is not defined
>>> max
<built-in function max>
>>> import __builtin__
>>> __builtin__.max
<built-in function max>
>>\uuu内置__
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“\uuuu内置\uuuuu”
>>>马克斯
>>>导入内置__
>>>内置最大值
\uuuuuu内置
只是一种导入/访问伪模块的方法,以防您要替换或添加始终全局可用的函数。使用这些函数不需要导入它。但是,\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
上不存在\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
有关此模块的更多信息,请参阅。您无需导入内置名称即可使用所有名称。但是您确实需要导入它,以便名称\uuuuu builtin\uuuu
在您的代码范围内可用
与代码块的执行相关联的内置名称空间实际上是通过在其全局名称空间中查找名称\uuuuuuuu
找到的;这应该是一个字典或模块(在后一种情况下,使用模块的字典)。默认情况下,当在\uuuuu main\uuuuuuu
模块中时,\uuuuuu内置\uuuuuu
是内置模块\uuuuuuuuuu
(注意:没有's');在任何其他模块中,\uuuuuuuuuuuuuuuu
是\uuuuuuuu
模块本身字典的别名<代码>\uuuu内置\uuuu
可以设置为用户创建的字典,以创建弱形式的受限执行
因此,它实际上是在查找\uuuuu内置\uuuuuu
(因为您在主模块中)
>>\uuuuuu内置\uuuuuu.max
但如上所述,这只是\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
的别名(它不是主模块名称空间的一部分,尽管它已被\uuuu
>>> __builtins__.max
<built-in function max>