在Python中我们经常见到运行一个程序时总会有 if __name__ == "__main__" 这段代码。我们知道,在Java中会有一个main方法,当我们运行程序时,只需要运行一 个main方法即可,在python中也是如此,,“if __name__==’__main__:”像是 一个标志,象征着Java等语言中的程序主入口,告诉程序员,代码入口在这里。 下面通过代码来演示:
# 模块01
from demo_02 import *
a = 50
print("小小")
print(a)
# 02模块
b = 100
print("这是模块02")
print(b)
运行结果:
但是有时,02模块的部分代码不想直接在运行01模块时直接运行,下面更改如下:
# 模块01
from demo_02 import *
a = 50
print("小小")
print(a)
# 02模块
b = 100
print("这是模块02")
if __name__ =="__main__" :
print(b)
这时我们再来看一下,运行结果:
我们发现没有输入出100,说明在运行01模块时,print(b) 这句代码并没有运行。
我们接着演示:
from demo_02 import *
# 模块01
a = 50
print("小小")
print(a)
print('模块A中__name__的值:{}'.format(__name__))
# 02模块
b = 100
print("这是模块02")
print(b)
print('模块02中__name__的值:{}'.format(__name__))
当我们运行02模块时:
而当我们运行01模块时:
比较发现,运行02时__name__值为:__main__;运行01时,02模块中__name__值为:__demo_02,因此发现:当哪个模块被直接执行时,该模块“__name__”的值就是“__main__”,当被导入另一模块时,“__name__”的值就是模块的真实名称。
所以,当运行“if __name__=='__main__':”语句时,如果当前模块时被直接执行,__name__的值就是__main__,条件判断的结果为True,“if __name__=='__main__':”下面的代码块就会被执行。