Oli*_*çon 2 python module python-3.x
在我的Python Shell中,删除__name__使其成为'builtins'.虽然,检查globals确认我没有__name__从某个全局变量中引用.
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> __name__
'__main__'
>>> del __name__
>>> __name__
'builtins'
>>> globals()[__name__]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'builtins'
Run Code Online (Sandbox Code Playgroud)
我的猜测是我们从一些关闭中使用它.这种行为是如何发生的?
首先从局部变量查找所有名称,然后查找全局变量__builtins__,这在任何地方都可用.这是所有内置功能的所在.
In[6]: __builtins__
Out[6]: <module 'builtins' (built-in)>
In[7]: __builtins__.__name__
Out[7]: 'builtins'
In[8]: __builtins__.len
Out[8]: <function len>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30 次 |
| 最近记录: |