【发布时间】:2015-11-13 20:54:52
【问题描述】:
我看到很多类似这样的 Python 代码:
def do_something(arg):
# some stuff
def do_something_else(arg):
# some other stuff
def main(args):
do_something(args.an_arg)
do_something_else(args.another_arg)
if __name__ == "__main__":
args = parse_args()
main(args)
我想知道为什么/是否有必要定义 main 函数。如果函数main 不打算从其他地方导入,那么这似乎非常好:
def do_something(arg):
# some stuff
def do_something_else(arg):
# some other stuff
if __name__ == "__main__":
args = parse_args()
do_something(args.an_arg)
do_something_else(args.another_arg)
...如果它打算从其他地方导入,则应该给它一个更有意义的名称(并以更常见的方式接受参数):
def do_something(arg):
# some stuff
def do_something_else(arg):
# some other stuff
def do_two_things(arg1, arg2):
do_something(args.an_arg)
do_something_else(args.another_arg)
if __name__ == "__main__":
args = parse_args()
do_two_things(args.an_arg, args.another_arg)
这是对的吗?像上面的例子那样定义main 函数有意义吗?
【问题讨论】:
-
使其成为一个独特的函数提供了一个固定的入口点,使其更易于测试。
-
我一直这样做是使用临时创建的模块...然后添加
main2()或其他名称来测试功能。
标签: python coding-style