你能 return 来自 Python 中的 main() 函数的值吗?
Can you return a value from a main() function in Python?
假设我有一个实用程序脚本:
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)
并且此脚本由另一个汇总脚本调用,如下所示:
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)
现在假设我希望汇总脚本打印或写入文件 每个 utility.py.[=16 实例生成的所有内容的组合输出=]
有什么方法可以通过 return 将 utility.py 的输出发送到汇总脚本吗? 或者汇总脚本是否必须读取在 utility.py 生成的所有输出或输出文件中?
请注意,我 不是 询问这是否被认为是最佳实践,或者它是否是编程圈子中的 "allowed"。我知道 main 应该只有 return 成功或失败代码。我只是问是否 可能。
在您的代码中,main
函数只不过是一个名为 main
的常规函数。因此,如果您询问是否 可以 在 main
函数中使用 return
,那么绝对可以。你当然可以
有可能。例如,您可以 return utility.main()
中的字典(或列表、元组等),然后抓取所有字典并将它们存储在 rollup.main()
中的列表中,在for
循环,有待进一步阐述。
在这种情况下,您的 utility.main()
只不过是一个普通函数。
假设我有一个实用程序脚本:
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)
并且此脚本由另一个汇总脚本调用,如下所示:
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)
现在假设我希望汇总脚本打印或写入文件 每个 utility.py.[=16 实例生成的所有内容的组合输出=]
有什么方法可以通过 return 将 utility.py 的输出发送到汇总脚本吗? 或者汇总脚本是否必须读取在 utility.py 生成的所有输出或输出文件中?
请注意,我 不是 询问这是否被认为是最佳实践,或者它是否是编程圈子中的 "allowed"。我知道 main 应该只有 return 成功或失败代码。我只是问是否 可能。
在您的代码中,main
函数只不过是一个名为 main
的常规函数。因此,如果您询问是否 可以 在 main
函数中使用 return
,那么绝对可以。你当然可以
有可能。例如,您可以 return utility.main()
中的字典(或列表、元组等),然后抓取所有字典并将它们存储在 rollup.main()
中的列表中,在for
循环,有待进一步阐述。
在这种情况下,您的 utility.main()
只不过是一个普通函数。