有两个脚本:
#imptee.py
foo = "abc"
def show():
print "foo from imptee:",foo
#impter.py:
#!/usr/bin/env python
from imptee import *
show()
foo = 123
print "foo from impter:",foo
show()
当我运行 impter.py 时,它会产生以下结果:
来自 imptee 的 foo:abc
来自 impter 的 foo:123
来自 imptee 的 foo:abc
我只是不明白为什么在将 123 分配给变量 foo 后,show() 仍然打印'abc',而不是 123。我认为在“from imptee import *”之后,foo 和 show() 现在在全局命名空间中,并且有没有本地命名空间。我明白搜索顺序应该是:本地命名空间、全局命名空间、内置名称规范。那么,这是为什么呢?有人可以帮我一把吗?谢谢!