浅析python中_name_='_main_'

Posted

tags:

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

刚接触到python时,对代码中的_name_=‘_main_‘比较疑惑,本文对其的讲解借鉴了其他博客讲述(见参考资料),希望和大家共同学习。

Make a script both importable and executable

首先先看一个例子

1 #module.py
2 def main():
3   print "we are in %s"%__name__
4 if __name__ == __main__:
5   main()

在这段函数中,定义main函数,当py文件被执行时,会打印 we are in __main__ ,表明if语句中的内容被执行。但是,当从另一模块导入module模块时且调用main()时

1 #anothermodule.py
2 from module import main
3 main()

会打印结果we are in module

之多以与之前的显示不同,说明没有进入if下的代码

其中__name__是模块的内置属性,且这个内置属性的值取决于这个.py文件的使用方式,即是作为模块导入还是直接执行。
如果你是直接执行,那么这个__name__的值就是__main__,如果你作为一个模块导入,那么这个内置属性值就取决于这个文件名,在这里即module。

 

参考资料

1.http://blog.csdn.net/sinat_15274667/article/details/51378882

2.http://www.jb51.net/article/51892.htm

 


以上是关于浅析python中_name_='_main_'的主要内容,如果未能解决你的问题,请参考以下文章

浅析python 中__name__ = '__main__' 的作用

浅析python 中__name__ = '__main__' 的作用

浅析python 中__name__ = '__main__' 的作用

浅析python 中__name__ = '__main__' 的作用

python之_init_()方法浅析

python类浅析(包含语法简单分析)