如果以下函数在超时之前成功或失败,您能为我建议一种返回客户端的好方法吗?
def until_true(func, condition, timeout):
s = 0.05
t = 0
while t <= timeout:
result = func()
if condition(result):
return t, result
time.sleep(s)
t = t + s
return result
使用当前的实现,您可以通过检查返回值的 len 来测试它是否失败,这确实很难看。如果函数成功,我还希望返回结果以及函数成功所需的时间。如果失败,我希望只返回结果。
最佳答案
将您的第一个返回值作为哨兵来检查它是否成功。那就是
return (True, t, result)
在调用方接受它时,将其设置为success,others,others2 = Until_true(..)
,以便您可以测试if success
...
同样,对于失败的部分,您也可以拥有
return (False, result)
关于python - 返回成功或失败以及函数结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28172957/