我在Python中工作,试图执行一行代码,在它执行之后,我调用sys.exit()
让脚本本身“退出”。但是,似乎sys.exit()
是在它上面的代码行执行之前执行的。下面是我要实现的代码:
if something == True:
self.redirect('http://www.google.com/')
sys.exit()
脚本在重定向之前正在退出。我需要完成重定向,然后执行sys.exit()。由于正在实现的其他代码的性质,我无法使用sleep命令。有人能帮我解决这个问题吗?
Tags:
尝试使用atexit模块注册一个清理函数,以便在调用sys.exit()之前运行。
要将重定向函数注册为清除函数,请执行以下操作:
注意:传递给重定向函数的参数包含在函数对象之后。这里不需要括号,因为我们传递给它的是函数对象,而不是实际调用函数。
另外,如果重定向方法不能正常工作,这对您也没有帮助。我将通过从Python解释器显式调用重定向方法来确保其工作正常。
在
self.redirect()
中可能存在一些缓冲或异步。当人们执行一个print
,然后是sys.exit()
时,常常会遇到类似的问题:print
输出被缓冲,然后进程在进程内输出缓冲区被刷新之前退出。可以通过刷新缓冲区和/或等待异步任务完成来解决此问题。
不过,从魔法
redirect
在做什么这个问题上还不清楚。相关问题 更多 >
编程相关推荐