Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何对函数使用retry(),它应该重试,直到该函数返回True_Python - Fatal编程技术网

Python:如何对函数使用retry(),它应该重试,直到该函数返回True

Python:如何对函数使用retry(),它应该重试,直到该函数返回True,python,Python,我正在尝试使用“重试”,但它不重试 retry(stop_max_attempt_number=8, wait_fixed=15000)(check_type(var1,type)) 检查类型:此函数将返回true或false。 它应该重试,直到该函数返回true。 请帮助解决此问题。我猜您是在询问重试软件包中的重试功能retry()将在函数引发异常或断言失败时重试函数,因此您可以将函数包装到另一个函数中,如下所示: def wrap_function(var1, type):

我正在尝试使用“重试”,但它不重试

retry(stop_max_attempt_number=8,
      wait_fixed=15000)(check_type(var1,type))
检查类型:此函数将返回true或false。 它应该重试,直到该函数返回true。
请帮助解决此问题。

我猜您是在询问
重试
软件包中的
重试
功能
retry()
将在函数引发异常或断言失败时重试函数,因此您可以将函数包装到另一个函数中,如下所示:

def wrap_function(var1, type):
    return_value = check_type(var1, type)
    assert return_value is True

caller = retry(stop_max_attempt_number=8, wait_fixed=15000)(
    wrap_function)
caller(var1, type)

还要注意,
retry()
必须接收要执行的函数,并且它返回一个您可以调用的函数。因此,当您将函数传递到
retry()
(否则将传递
True
False
)时,必须删除括号和参数,并且必须保存返回的函数以便稍后调用(我在示例中使用了变量
caller

请提供更多详细信息。你在使用哪个模块?发生了什么事情对你不起作用?重试是您自己的功能吗?在哪里定义了
retry
?我可以想象它返回一个函数,该函数将函数及其参数作为单独的参数:
retry(…)(check_type,var1,type)