
编程微信: codingpy
在学习编程的过程中python main 参数,每个程序员都必须编写了main()函数,Python程序员也不例外. 本文分享了Python之父Guido van Rossum推荐的函数编写,它可以大大提高该函数的灵活性.
一篇文章将Guido列为历史上12个最伟大的程序员之一.
一般而言,Python程序员可能会这样编写main()函数:

Guido还承认他之前编写的main()函数也具有类似的结构,但是编写的灵活性不够高python main 参数,尤其是在必须解析复杂的命令行选项时. 为此,他向大家提出了一些建议.
添加可选的argv参数
首先,修改main()函数以接受可选参数argv,该参数支持在交互式shell中调用此函数:
def main(argv = None):

如果argv为None:
argv = sys.argv
#等,在getopt()调用中用argv替换sys.argv
这样做,我们可以动态提供argv的值,该值比以下内容更灵活:
def main(argv = sys.argv):

#等.
这是因为调用该函数时sys.argv的值可能会更改;可选参数的默认值是在定义main()函数时计算的.
但是现在sys.exit()函数调用将引起问题: 当main()函数调用sys.exit()时,将启动交互式解释器!解决方案是让main()函数的返回值指示退出状态. 因此,代码的最后一行变为:
如果__name__ =='__ main __':
sys.exit(main())

此外,main()函数中的所有sys.exit(n)调用都将返回n.
定义Usage()异常
另一个改进是定义了Usage()异常,可以在main()函数末尾的except子句中捕获该异常:
这样,main()函数只有一个出口点,这比前两个出口点要好. 此外,参数的分析和重构也更容易: 在辅助函数中引起“用法”的问题并不大,但是使用return 2时需要仔细处理返回值.
阅读原始英文文本:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-267121-1.html
是因为你真的真的值得爱