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__':里的代码,不会被执行。