python导入和范围

时间:2014-12-19 12:29:56

标签: python import

假设我们有两个文件" 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"?这是某种设计决定吗?

由于

1 个答案:

答案 0 :(得分:0)

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

这就是你可以在很多脚本中看到的原因

if __name__ == '__main__':
    some code

否则,some code将在导入时执行。因此,声明了模块的所有功能,并执行了所有“out of function”代码。这是逻辑,否则,函数永远不会使用参数中没有给出的东西,甚至不能使用其他函数。