我想实现一个运行一段时间后终止的程序t
,并t
使用ArgumentParser
. 目前我有以下代码(省略一些细节):
def run():
parser = create_arg_parser()
args = parser.parse_args()
class_instance = MultiThreadClass(args.arg1, args.arg2)
class_instance.run()
if __name__ == '__main__':
run_thread = Thread(target=run)
run_thread.daemon = True
run_thread.start()
time.sleep(3.0)
该程序按我的预期工作(它在运行 3 秒后终止)。但正如我之前提到的,运行时间(上面代码片段中的 3.0)应该从命令行输入(例如 args.arg3 = 3.0),而不是硬编码。显然我不能time.sleep(args.arg3)
直接放。我想知道是否有任何方法可以解决我的问题?也欢迎不使用守护线程的答案!谢谢。
PS。如果我将参数解析代码放在run
函数之外,例如:
def run(args):
class_instance = MultiThreadClass(args.arg1, args.arg2)
class_instance.run()
if __name__ == '__main__':
parser = create_arg_parser()
args = parser.parse_args()
run_thread = Thread(target=run(args))
run_thread.daemon = True
run_thread.start()
time.sleep(args.arg3)
该程序不会在args.arg3
几秒钟后终止,我对原因感到困惑。如果有人能解释所有这些背后的魔力,我也会非常感激......非常感谢!