它为什么这样做? 如果
可能重复:
<if name ==“ main ”:>是做什么的?
考虑这个代码:
if __name__ == '__main__':
import pdb
pdb.run("interact()n")
以下行意味着什么?
if(__name__=='__main__')
我昏了过去。
如果此模块作为独立程序运行,这将是真实的。 这样,某些东西既可以作为另一个程序导入的模块,也可以作为独立程序运行,但只有在if
语句中执行代码才能作为程序执行。
__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成语。
这是一个检查,看你是直接运行脚本还是包含在库中。
当你像这样运行一个python脚本时:
python myScript.py
它发送一个参数,告诉你运行程序的第一个方法,它被广泛地称为“main”,所以当__name__
是__main__
你知道程序是从命令行执行或双击的。