在Python中,经常能看到下面这句话:
if __name__ == '__main__':
那么这句话的作用是什么呢?首先上结论:
1、当.py文件自己运行时,main下面的代码执行
2、当.py文件被其他文件引用时,main下面的代码不执行
为了验证上面的结论,来看一个小例子:
新建一个first.py文件,在文件中键入以下代码:
# first.py
def hello_world():
print('hello world')
print(__name__) #输出__main__
if __name__ == '__main__':
print('this is main')
hello_world()
然后,运行first.py文件,首先执行print语句,然后进入if语句,执行hello_world(),结果如下。可以看到,单独执行一个.py时,main下面的语句被执行。
接下来新建一个second.py,second.py的主要作用是引入first.py。second.py中的代码如下:
# second.py
import first
first.hello_world()
结果如下图,first.py被作为module引入到second.py中,因此print(name)的输出为first,这刚好是first.py文件的名字。然后由于name的值与‘main ’不相同,因此if内的代码不执行。最后执行first.hello_world(),输出”hello_world”
总结:
1、当.py文件自己运行时,main下面的代码执行
2、当.py文件被其他文件引用时,main下面的代码不执行