本文主要是介绍python:if __name__ == __main__到底是个啥意思,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近才开始学python:
对于Python初学者来说,在看别人代码时经常看到if __name__ == "__main__",
那么这句话到底是什么意思?
解释:
只要你创建了一个模块(一个.py文件),这个模块就有一个内置属性name生成,该模块的 name 的值取决于如何应用这个模块。说人话就是,如果你直接运行该模块,那么__name__ == "__main__";
如果你 import 一个模块,那么模块name 的值通常为模块文件名。
示例:
创建一个test1.py
def func():print('hello python')if __name__ == "__main__":func()
模块中,首先定义了函数func(),用来打印出hello python,
然后判断__name__
是否等于 __main__
,如果等于,有打印,反之则反,现在运行该模块,结果为:
说明__name__
等于 __main__
。
如果再创建一个代码test2.py:
import test1print('bye python')
模块中,首先import test1,然后打印bye python做测试用,运行该模块,结果为:
运行结果仅有bye, world!,说明__name__
不等于 __main__
。
结论:
通过上面test1.py和test2.py两个模块,我们现在可以得出一个非常实用的结论:
如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。
通俗的理解也就是_name_ == '_main_':假如你叫小明.py,在朋友眼中,你是小明(_name_ == '小明');在你自己眼中,你是你自己(_name_ == '_main_')。
if _name_ == '_main_'的意思是:当.py文件被直接运行时,if _name_ == '_main_'之下的代码块将被运行;当.py文件以模块形式被导入时,if _name_ == '_main_'之下的代码块不被运行。
参考:
1.https://blog.csdn.net/weixin_35684521/article/details/81396434
2.https://www.cnblogs.com/GGGGGGZX/p/9206806.html
这篇关于python:if __name__ == __main__到底是个啥意思的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!