你能从 Python 的 main() 函数返回一个值吗?

Ret*_*Dad 3 python import program-entry-point return

假设我有一个实用程序脚本:

utility.py

def func1(input):
    # do stuff to input
    return stuff

def func2(input):
    # do more stuff to input
    return more_stuff

def main(argv):
    stuff = func1(argv[1])
    more_stuff = func2(argv[1])
    all_stuff = stuff + more_stuff
    # write all_stuff to stdout or file

if __name__ == "__main__":
    main(argv)
Run Code Online (Sandbox Code Playgroud)

这个脚本被另一个汇总脚本调用,如下所示:

rollup.py

import utility

def main(argv):
    # assuming a list of of inputs is in argv[1]
    inputs = argv[1]
    for input in inputs:
        utility.main(['utility.py', input])

if __name__ == "__main__":
    main(argv)
Run Code Online (Sandbox Code Playgroud)

现在假设我希望汇总脚本打印或写入文件,将每个实用程序.py 实例生成的所有内容的组合输出写入文件。

有没有办法通过将utility.py的输出返回到汇总脚本来做到这一点或者汇总脚本是否必须读入utility.py 生成的所有输出或输出文件?

请注意,我不是在问这是否被认为是最佳实践,或者在编程界是否“允许”。我知道 main 应该只返回成功或失败代码。我只是问是否有可能。

Fre*_*red 6

在您的代码中,该main函数只不过是一个名为main. 所以如果你问你是否可以return在你的main函数中使用,那么绝对可以。你肯定可以