python中的_name_=='_main_'的作用

来源:互联网 发布:农村淘宝怎么下载 编辑:程序博客网 时间:2024/06/08 18:13

一般在脚本模块中,我们希望自己写的脚本模块既可以导入到别的模块中使用,又能够自己直接执行。

举个例子:

先写一个模块:

#module.py


def main():

    print 'this is in %s' %__name__


if __name__=='__main__':

    main()


这个模块中定义了一个main()函数,直接执行后得到的结果是‘this is in __main__’,说明if语句中的内容执行,调用了main();

如果从另外一个模块中import该模块,并调用main()函数,那么会得到什么样的结果呢?

#anotherModule.py

from module import main

main()

运行anotherModule.py文件后得到的结果是'this is in module'。这说明module.py模块中的if语句的内容没有执行。这样就能够让模块自己能够运行,并且能够被其他模块引入。

Conclusion:

如果直接执行某个模块时,该文件中的__name__=='__main__'就是True,该if语句中的内容会得到执行;但是如果被当做模块引入时,这时__name__的值就是这个模块的名字。


这个功能的另一个用处是调试代码:在“if __name__=='__main__':”中加入调试代码,就可以让外部模块调用时不执行这部分的调试代码,但是如果想排查问题时,可以直接执行该模块文件来进行调试,其中的调试代码会得到执行。

原创粉丝点击