可能重复:
What does <if name==“main”:> do?它为什么这样做?如果 - __name__ == '__main__'
考虑以下代码:
if __name__ == '__main__':
import pdb
pdb.run("interact()\n")
什么是以下行是什么意思?
if(__name__=='__main__')
我晕过去了。
可能重复:
What does <if name==“main”:> do?它为什么这样做?如果 - __name__ == '__main__'
考虑以下代码:
if __name__ == '__main__':
import pdb
pdb.run("interact()\n")
什么是以下行是什么意思?
if(__name__=='__main__')
我晕过去了。
如果此模块作为独立程序运行,这将是真实的。这样,某些东西既可以作为另一个程序导入的模块,也可以作为独立程序运行,但只有在作为程序执行时才能执行if
语句中的代码。
这是一个检查,看看你是直接运行脚本还是包含在库中。
当你运行一个python脚本是这样的:
python myScript.py
它发出了一个参数,告诉你运行程序第一种方法,它被广泛称为“主”,所以当__name__
是__main__
你知道程序从命令行执行或双击。
他写了一个python模块,打算通过import
使用。
如果该模块作为主python脚本传递给解释器,则会引用您引用的代码。这将调用python调试器下的interact()
方法。
__name__
是一个自动设置在执行python程序中的变量。如果您的import
来自另一个程序的模块__name__
将被设置为模块的名称。如果您直接运行程序,则__name__
将设置为__main__
。
因此,如果你想,如果你在命令行中运行该程序,而不是进口的当一些事情发生只(如:单元测试库),你可以使用
if __name__ == "__main__":
# will run only if module directly run
print "I am being run directly"
else:
# will run only if module imported
print "I am being imported"
诡计。这是一个常见的Python成语。
+1“I dainted” – mpen 2009-12-29 07:32:08