浅析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

 

posted on 2017-07-14 22:24  温柔的晚风  阅读(844)  评论(0)    收藏  举报

导航