gpt4 book ai didi

python导入和作用域

转载 作者:行者123 更新时间:2023-11-28 19:20:02 24 4
gpt4 key购买 nike

假设我们有两个文件“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”。我认为“from b import funcB”只会导入“funcB”没有别的。

为什么“funcB”可以访问“varB”?这是某种设计决策吗?

谢谢

最佳答案

当您导入一个模块时,它不仅可以让您访问刚刚导入的内容。它还将执行整个脚本。

这就是为什么你可以在很多脚本中看到

if __name__ == '__main__':
some code

否则,一些代码 将在导入时执行。所以模块的所有功能都被声明了,所有“功能外”的代码都被执行了。这是逻辑,否则,一个函数永远不能使用参数中没有给它的东西,甚至不能使用其他函数。

关于python导入和作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27566213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com