假设我们有两个文件“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”。但我只进口了
“功能”。我以为“from b import funcB”只会导入“funcB”
没有别的了。
为什么“funcB”可以访问“varB”?这是某种设计决定吗?
谢谢
最佳答案
当您导入一个模块时,它不仅允许您访问刚刚导入的内容。它还将执行整个脚本。
这就是为什么你可以在许多脚本中看到
if __name__ == '__main__':
some code
否则,
some code
将在导入时执行。因此,模块的所有函数都被声明,所有“函数外”代码都被执行。这是逻辑,否则,函数永远不能使用参数中没有给它的东西,甚至不能使用其他函数。关于python - python导入和作用域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27566213/