它为什么这样做? 如果

可能重复:
<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__你知道程序是从命令行执行或双击的。

链接地址: http://www.djcxy.com/p/9313.html

上一篇: Why does it do this ? if

下一篇: What does `if name == "