近日一个朋友和我说,python中if name == "main"下的语句是优于全局的变量执行的。这个认识和我以前的认知是不一样,因此我做实验进行验证了一下
(1)验证python语句的执行顺序
代码
print("A")
if __name__=="__main__":
print("B")
运行结果如下:
A
B
[Finished in 74ms]
结论:
python的中的代码是按顺序执行,开始朋友的这个观点是不对的
(2)既然是按照顺序执行,那么if name=="main"语句有什么用呢?
为了搞清楚这个问题。我找了相关资料,参考[1]
简单说来,就是如果文件作为包引用的时候,就不会执行if name=="main"下面的内容
验证代码如下
wzw.py
print("1,test-A")
print(1,__name__)
if __name__=="__main__":
print("1,test-B")
test2.py
from wzw import *
print("2:A")
print(2,__name__)
if __name__=="__main__":
print("2:B")
执行wzw.py的输出为
1,test-A
1 __main__
1,test-B
[Finished in 83ms]
执行test2.py的输出为
1,test-A
1 wzw
2:A
2 __main__
2:B
[Finished in 107ms]
结论
验证代码的运行结果,证明前面的观点是正确的。
参考
[1] 详解if name == ‘main‘ (看这一篇就够了) https://blog.csdn.net/weixin_43135178/article/details/130482007
网友评论