关于python中if __name__=='__main__'的含义

在python中,我们经常看到在源文件的最后通常都会有这样一个语句:

If __name__ == '__main__':

那么,它的作用究竟是什么呢?


比如我们定义了一个python文件为example.py:

def test():
    print 'success'

if __name__ == '__main__':
    test()

如果我直接在命令行执行命令:python example.py

那么出来的结果是:success。这说明变量 __name__ 的值确实是 '__main__'


但是如果我是使用这样的命令:

import example

example.__name__

出来的结果是:'example',如下图:


当python解析器读取example.py这个文件的内容时,它会执行这个文件里面的代码。在执行之前,python解析器会定义一些特殊的变量。在上面的例子中,对于第一种做法,python解析器会将变量 __name__ 的值变为’__main__’ 。所以也就能够调用到test函数。对于第二种做法,python解析器会将变量__name__ 的值变为’example’,也就是文件名。

 

这样做的目的是,有时候你写了一个模块(文件),你调试的时候可以直接运行这个文件,当它被导入(import)其他模块时,调试的信息就不会被调用到。


参考链接:

https://stackoverflow.com/questions/419163/what-does-if-name-main-do


http://ibiblio.org/g2swap/byteofpython/read/module-name.html



发布了42 篇原创文章 · 获赞 185 · 访问量 27万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章