Python中的 if __name__ == __main__到底是个啥子意思?
在看别人代码时经常会看到if __name__
== “main“,这时心里就想不写这句话,代码不照样能跑
我刚开始运行别人代码时也是一直疑惑,直到我翻了几篇关于__name__ == “main“,终于明白了
通过例子来理解:
只要你创建了一个模块(一个.py文件),这个模块就有一个内置属性name生成,该模块的 name 的值取决于如何应用这个模块。说人话就是,如果你直接运行该模块,那么__name__ == “main“;如果你 import 一个模块,那么模块name 的值通常为模块文件名。
如,创建一个test1.py:
def func():
print(‘hello, world!’)
if name == “main“:
func()
模块中,首先定义了函数func(),用来打印出hello, world!,然后判断__name__ 是否等于 __main__,如果等于,有打印,反之则反,现在运行该模块,结果为:
hello, world!
说明__name__ 等于 __main__。
这时,输入代码:
再创建一个test2.py:
import test1
print(‘bye, world!’)
模块中,首先import test1,然后打印bye, world!做测试用,运行该模块,结果为:
bye, world!
运行结果仅有bye, world!,说明__name__ 不等于 __main__。
通过上面test1.py和test2.py两个模块,我们现在可以得出一个非常实用的结论: 如果模块是被直接运行的,则代码块被运行,如果模块被import,则代码块不被运行。
简单来说有这串的都是主程序。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蓝陌Blog!
评论
数据库加载中