What does `if name == “__main__”` mean in Python?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What doesdo?
我用Python编写脚本已经有很长一段时间了,我根据需要对Python进行了更多的研究。在阅读别人的代码时,我经常遇到
它对什么有好处?
这允许您使用同一个文件作为库(通过导入)或作为应用程序的起点。
例如,考虑以下文件:
1 2 3 4 5 6 | # hello.py def hello(to=__name__): return"hello, %s" % to if __name__ =="__main__": print hello("world") |
您可以通过两种方式使用该代码。首先,您可以编写一个导入它的程序。如果导入库,
1 2 3 | #program.py from hello import hello # this won't cause anything to print print hello("world") |
如果不想写第二个文件,可以直接从命令行运行代码,如下所示:
1 2 | $ python hello.py hello, __main__ |
此行为全部取决于特殊变量
通常,此构造用于向代码中添加单元测试。这样,当您编写一个库时,您就可以将测试代码直接嵌入到文件中,而不用担心当库以正常方式使用时它会被执行。当您想要测试库时,您不需要任何框架,因为您可以像运行程序一样运行库。
另请参见python文档中的
基本上,
"主"脚本文件和以其他方式导入或引用的外部文件之间存在区别。如果脚本是"主"脚本,那么特殊变量
您可以使用它来保护"执行"代码不受脚本所具有的类和变量的影响。这使您能够导入脚本并使用类和变量,而不必实际运行该脚本的主代码(如果有)。
另请参见:如果name="main":做什么?