gpt4 book ai didi

python - 删除后我从哪里访问 __name__?

转载 作者:行者123 更新时间:2023-11-28 20:01:51 26 4
gpt4 key购买 nike

在我的 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'

我的猜测是我们正在从某个闭包中使用它。这种行为是如何发生的?

最佳答案

首先从局部变量中查找所有名称,然后是全局变量,然后是随处可用的 __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>

关于python - 删除后我从哪里访问 __name__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49469131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com