我应该用以下内容启动Python程序:
if__name__ == '__main__':
some code...
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?我多次看到它,但对它没有任何线索.
Jou*_*nen 30
如果您的程序可用作库但您还有一个主程序(例如,用于测试库),那么该构造允许其他人将该文件作为库导入而不运行您的主程序.如果您的程序名为foo.py并且您从另一个python文件执行"import foo",则__name__求值为'foo',但如果从命令行运行"python foo.py",则__name__求值为'__main__'.
请注意,您需要在if和_之间插入一个空格,并缩进主程序:
if __name__ == '__main__':
main program here
Run Code Online (Sandbox Code Playgroud)
Cha*_*ffy 23
一个更好的模式是:
def main():
...
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
这允许您导入代码的人调用您的代码,同时还可以使pychecker和pylint等程序工作.
ori*_*rip 21
Guido Van Rossum 建议:
def main(argv=None):
if argv is None:
argv = sys.argv
...
if __name__ == "__main__":
sys.exit(main())
Run Code Online (Sandbox Code Playgroud)
这样,您就可以运行main()从别的地方(供应参数),如果你想只是一个错误代码退出return 1的main(),也不会误使交互式解释退出.
| 归档时间: |
|
| 查看次数: |
19640 次 |
| 最近记录: |