【发布时间】:2026-01-11 17:40:01
【问题描述】:
假设我们有两个文件“a.py”和“b.py”
a.py
from b import funcB
funcB()
b.py
varB = 123
def funcB():
print(varB)
正如你在“a.py”中看到的,我只从“b”导入“funcB”, 之后我在“a”中执行“funcB”,但有些“funcB” 可以看到“b”中定义的“varB”。但我只进口 “功能B”。我认为“从 b 导入 funcB”只会导入“funcB” 没有别的了。
为什么“funcB”可以访问“varB”?这是某种设计决策吗?
谢谢
【问题讨论】:
-
“这是某种设计决策吗?” 是的。整个模块是真正导入的,但只有您指定的名称添加到当前命名空间。否则,您导入的功能将无法访问,例如在其源脚本中定义的辅助函数和导入,这将非常无用。
-
这也很有用:from import vs import