if__name=='__main__'

2019年04月16日 9点热度 0人点赞 0条评论

首先看个例子

 

#print_hello.py
def hello():
	print('hello')
	print(__name__)

hello()
'''
输出结果
hello
__main__
'''
from print_hello import hello

hello()
'''
输出结果
hello
print_hello
hello
print_hello
'''

可以看到输出了两次,print_hello.py在作为模块调入的时候,执行了一次,然后调用时又执行了一次。

__name本身是一个变量,它在程序执行前就被创建并赋值,在当前程序被当做主程序执行时,__name__自动被赋值为__main__,当它作为模块被其他文件调用时,自动被赋值为模块所在的文件名。

所以if__name=='__main__'的作用是保证模块文件的函数被其他.py文件调入时,不被重复执行。

未经允许不得转载!if__name=='__main__'

update

纸上得来终觉浅, 绝知此事须躬行。