__name__ == '__main__'

来源:互联网 发布:烈焰战车10级升级数据 编辑:程序博客网 时间:2024/06/07 17:58

__name__ 是模块里面的一个内置属性,它的值取决与你如果去应用这个模块.

(1)当我们导入这个模块时,即import  *.py时: __name__的值等于模块名.
例如:我们现在有个模块 
test_zsh.py,里面只有一行代码如下,就是打印__name__这个属性:
print __name__
将这个模块放在默认模块的路径下,可通过
>>>import sys
>>>sys.path
这两段代码查看路径地址.
当我们执行import test_zsh时
将会输出:test_zsh(注意:因为在导入模块时,会将模块编译成中间代码,再执行代码.而当第二次导入时,会查看是否导入过,如果导入过则不会再执行.)
(2)当我们直接通过命令行python *.py调用时: __name__的值等于缺省值'__main__'.
例如:同样上面那个模块
当我们执行python test_zsh.py时
将会输出:__main__

因此:如果我们在写模块,写Python脚本时,最好加上
if __name__ == '__main__':
       主函数内容
这样我就可以避免当我们的模块被引用导入时,误执行主函数.
而只有我们通过Python命令去执行我们的脚本才会执行.
0 0