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.py
和b.py
,b.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__"做了什么?