Python:if __name__ == '__main__'

很多模块里都会看到这句话,一般用于模块自测时使用。

 

所有的模块都有一个内置属性 __name__。

一个模块的 __name__ 的值取决于您如何应用模块。

 

一个Python文件有两种使用方式,直接使用或者是作为模块使用。

1.如果像一个标准的程序那样,直接运行模块,在这种情况下 __name__ 的值将是一个缺省"__main__":

#创建一个名叫task.py的文件,内容如下:

print("This is task.py")
print"Name is:",__name__)
if __name__ =="__main__":
    print 'hello,my name is main'

if __name__ =="task":
    print 'hello,my name is task'
#运行之后结果是;
#This is task.py
#Name is: __main__
#hello,my name is main

 

2. 如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。

#新建一个test.py文件,把task.py作为一个模块导入
import task

#结果如下
#This is task.py
#name is: task
#hello,my name is task

 

所以说模块自测的时候,写在if __name__ == '__main__':里的代码,会直接执行;

作为模块被调用的时候,写在if __name__ == '__main__':里的代码,不会被执行。

 

posted @ 2014-08-28 14:42  疲惫的豆豆  阅读(395)  评论(0编辑  收藏  举报