Pythonif __name__ == ‘__main__‘:

Posted Xavier Jiezou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pythonif __name__ == ‘__main__‘:相关的知识,希望对你有一定的参考价值。

简介

如果你只写了一个.py文件,即不涉及到多个.py文件之间的调用问题,那么可以不加if __name__ == '__main__':,例如我写了一个a.py文件。

代码

# a.py
def func_a():
	print('this is func_a in a.py')
func_a()

输出(执行a.py

this is func_a in a.py

实际项目开发中,往往需要写多个.py文件,会涉及到不同.py文件的调用。例如我写了两个文件a.pyb.pyb.py需要调用a.py中的函数。
目录

├─test
|  ├─a.py
|  ├─b.py

代码

# a.py
def func_a():
	print('this is func_a in a.py')
func_a()
# b.py
from a import func_a
func_a()

输出(执行b.py

(执行`b.py`)
this is func_a in a.py

那么问题就来了,执行b.py时会打印两次this is func_a in a.py。原因是import的时候会执行一次函数,接下来又执行了一次函数,所以就会有两行输出。解决方案就是在a.py中执行func_a函数时加入if __name__ == '__main__':,具体更改如下:

# a.py
def func_a():
	print('this is func_a in a.py')
if __name__ == '__main__':
	func_a()

综上,使用if __name__ == '__main__':可以实现不同.py文件间只调用模块而不执行的目的。此外,即使你只写了一个.py文件,也推荐使用if __name__ == '__main__':

参考

https://blog.csdn.net/yjk13703623757/article/details/77918633/

以上是关于Pythonif __name__ == ‘__main__‘:的主要内容,如果未能解决你的问题,请参考以下文章

Pythonif __name__ == "__main__"做了什么?

Pythonif __name__ == '__main__' 含义解析

if __name__ == '__main__':

20171216

Python if语句循环语句

`if __name__ == '__main__'` 等价于 Ruby