回答
如何打印内置命名空间呢?
在 Python 中,内置命名空间(即内置函数和异常等的命名空间)不能直接通过标准方法打印。builtins
模块提供了对内置命名空间的访问,但你不能直接打印其字典表示。不过,你可以遍历 dir(__builtins__)
来查看内置命名空间中定义的名称。
for name in dir(__builtins__):
print(name)
这会打印出所有内置函数、异常等的名称,但请注意,这并不是直接打印内置命名空间的字典。
在 test01.py
和 test02.py
中定义的全局命名空间变量是否隔离开来?
是的,每个 Python 模块在其自己的全局命名空间中运行。这意味着在 test01.py
中定义的变量在 test02.py
中是不可见的,除非它们被显式地导入到另一个模块中。例如:
# test01.py
var_from_test01 = "Hello from test01"
# test02.py
# 如果不导入 test01,则无法访问 var_from_test01
# from test01 import var_from_test01
# print(var_from_test01) # 这将打印 "Hello from test01",如果上面的导入语句被取消注释
# 由于没有导入,下面的代码将引发 NameError
# print(var_from_test01)
因此,默认情况下,test01.py
和 test02.py
中的全局命名空间是隔离的,不能互相调用未导入的变量。
内置命名空间是
builtins
,它也可以导入。比如
官方python里也有一个全局变量放了这个module:
__builtins__
。所以可以
print(dir(globals()['__builtins__']))
不同的python文件是隔离的。
相互使用时可以的,使用之前需要
import
。比如