python 中的if __name__=='__main__': main()是什么 意思呢

如题所述

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。而实际上在导入的时候,有一部分代码我们是不希望被运行的。

if __name__ == '__main__' 就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 __name__ 的值。

举例子说明一下,假设有一个 const.py 文件,内容如下:

PI = 3.14

def main():

print "PI:", PI

main()

扩展资料

如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。实际上,这个问题还可以衍生出其他的一些知识点,例如 __main__.py 文件与 Python 的 -m 参数。

输出结果只列出了关键的部分,应该很容易看出他们之间的差异。直接运行是把 run.py 文件所在的目录放到了 sys.path 属性中。以模块方式运行是把你输入命令的目录(也就是当前工作路径),放到了 sys.path 属性中。

参考资料来源:百度百科—Python

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
这个脚本被执行的时候,__name__ 值就是 __main__ ,才会执行 main()函数

如果这个脚本是被 import 的话,__name__的值不一样。main()函数就不会被调用。

这个句子用来写既能直接运行,又能给其他python程序import,提供库调用的脚本本回答被提问者和网友采纳
第2个回答  2018-07-04

这个一般用来测试模块功能的,只有直接运行[python 模块.py]的时候才会运行这个,正确的应该是:

if  __name__ == '__main__':
    #操作

如果解决了您的问题请采纳!
如果未解决请继续追问

相似回答