1、当把在模块B中导入模块A时,只要模块B执行到import语句时,模块A的代码会被执行。
# 模块A(文件名是testA)
a = 1
print(a)
print('模块A')
# 模块B
from testA import A
b = 2
print(b)
print('模块B')
模块B运行结果是:
1
模块A
2
模块B
2、如果在模块A中,我们有部分代码不想在导入模块B中时被模块B执行,但是如果是模块A自己执行时可以执行,那该怎么做呢?
这时我们就可以用到
if __name__ = '__main__'
# 模块A(文件名是testA)
a = 1
print(a)
if __name__ = '__main__'
print('模块A')
模块B不做任何改动,此时模块B输出结果为:
1
2
模块B
输出结果中没有了“模块A”,这是因为打印模块A的语句位于"if __name__ = '__main__'"内部
3、'__name__'是python的内置变量,用于指代当前模块。
当哪个模块被执行时,该模块的__name__值就是__main__;当用作被导入模块时__name__值是模块的真实名称。
总结:通俗地讲,"if __name__ = '__main__'"内部的代码是“认主”的,只有该模块自己执行时才会执行,其他情况一律不执行。