【发布时间】:2017-05-19 08:12:07
【问题描述】:
我正在使用/重写一个首先定义如下函数的代码:
def main(argv=[__name__]):
...
*rest of code*
...
并以:
结尾if __name__ == "__main__":
sys.exit(main(sys.argv))
我的印象是,它所做的是检查以确保从命令行执行脚本,然后在退出 python 时使用提供的参数运行函数main。但是,为什么要在函数定义中将变量argv预设为[__name__]呢?这不是我的代码,所以我不知道这背后的初衷。但是,我对使用 if __name__ == "__main__": 行来抽查命令行执行情况并不陌生,所以我缺少这种语法可能有一些明显的原因。任何有关main 函数定义和参数/命令行-vs-模块测试的帮助或更多详细信息将不胜感激。
【问题讨论】:
-
sys.exit()没有任何奇怪之处,我们的知识库中已经有(回答!)关于那里使用的做法的问题,比较__name__和__main__。请考虑缩小您的问题范围,不再有重复的部分;可以说,跨越预先回答和未回答的问题使其“过于宽泛”。 -
...其中的一个例子:Why use
def main()?
标签: python command-line sys