python - 返回成功或失败以及函数结果

标签 python

如果以下函数在超时之前成功或失败,您能为我建议一种返回客户端的好方法吗?

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/

相关文章:

python - django virtualenv - 错误 : No module named south

python - python和MyHDL中yield语句的区别

python - OpenCV Python : Draw minAreaRect ( RotatedRect not implemented)

python - 类和私有(private)变量

python - 具有重复索引的 numpy 数组的向量化分配 (d[i,j,i,j] = s[i,j])

python - 如何使用 docker 将 django cookiecutter 项目上传和部署到 heroku?

python - 模块未找到错误 : No module named 'redis'

Python raw_input 带有强制 TLD?

python - 在 Windows 10 中获取启动时间并不总是相同的时间

python - Django 存储实际可用性并查询新预订的可用时间表