假设我们有两个文件" a.py"和" b.py"
a.py
from b import funcB
funcB()
b.py
varB = 123
def funcB():
print(varB)
正如您在" a.py"中看到的那样,我从" b"只有" funcB", 之后我执行" funcB"在" a",但有些" funcB" 可以看到" varB"在" b"中定义。但我只进口了 " funcB&#34 ;.我想"来自b import funcB"只会导入" funcB" 没有别的。
为什么" funcB"访问" varB"?这是某种设计决定吗?
由于
答案 0 :(得分:0)
导入模块时,它不仅可以访问刚刚导入的模块。它还将执行整个脚本。
这就是你可以在很多脚本中看到的原因
if __name__ == '__main__':
some code
否则,some code
将在导入时执行。因此,声明了模块的所有功能,并执行了所有“out of function”代码。这是逻辑,否则,函数永远不会使用参数中没有给出的东西,甚至不能使用其他函数。