Python 中的重试函数 [重复]

2023-12-23

前段时间,我需要一个retryR 中的函数处理缓慢的服务器响应。该函数将具有以下行为:(尝试一个操作(函数或方法),如果失败,请稍等一下,然后重试)x10

我想出了以下几点:

retry <- function(fun, max_trys = 10, init = 0){
  suppressWarnings(tryCatch({
    Sys.sleep(0.3);
    if(init<max_trys) {fun}
}, error=function(e){retry(fun, max_trys, init = init+1)}))}

效果很好。现在我在Python3中需要相同的东西,所以我尝试编写相同的代码:

import time
def retry_fun(fun, max_trys = 10, init=0):
    try:
        time.sleep(0.3)
        if(init<max_trys):
            fun
    except:
        retry_fun(fun, max_trys, init = init+1)

但是当我运行它时,它使我的内核崩溃。由于我是 Python 的初学者,我不确定是什么导致了崩溃,以及一个函数是否/如何作为参数传递到另一个函数中。

你能帮我一下吗?


除了能够传递函数并通过添加来使用它们之外()在名称之后(Python 的调用语法),您don't需要使用递归;只需将其放入循环中即可:

import time
def retry(fun, max_tries=10):
    for i in range(max_tries):
        try:
           time.sleep(0.3) 
           fun()
           break
        except Exception:
            continue

except Exception应该进行更改以捕获函数可能引发的有意义的异常。使用Exception(正如我在示例中所做的那样)通常是不好的做法,因为它捕获了大量您可能不希望捕获的异常。

除此之外,使用for-loop而不是显式的第三个计数器和递归(这会导致大值的调用堆栈很长)更好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的重试函数 [重复] 的相关文章

  • 如何生成大型网站的图形站点地图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为我的网站生成图形站点地图 据我所知 有两个阶段 抓取网站并分析链接关系 提取树形结构 生成视觉上
  • 如何仅选择数组中的第一列并对其求和?

    这是我的代码 import numpy as np contrainte1 1080 0 65 minutes tous les jours contrainte2 720 0 55 minutes du lundi au vendredi
  • Visual Studio Code:如何使用参数调试 Python 脚本

    我正在使用 Visual Studio Code 来调试 Python 脚本 下列的本指南 https code visualstudio com docs python debugging 我在中设置了参数launch json file
  • 如何在python中确定过去的时区特定日期是否是夏令时?

    有没有办法检查特定时区在我指定的日期是否处于夏令时 test dt datetime year 2015 month 2 day 1 pst pytz timezone America Los Angeles test dt pst loc
  • Pandas 在列级别连接数据帧时添加键

    根据 Pandas 0 19 2 文档 我可以提供keys参数来创建结果多索引 DataFrame 一个例子 来自 pandas 文档 是 result pd concat frames keys x y z 我将如何连接数据框以便我可以在
  • groupby pandas数据框中连续相同的值和出现次数的累积计数

    我有一个问题 我想计算数据帧中当前值在滚动周期内未更改的次数 例如 df pd DataFrame col list aaaabbab 会以某种方式给出输出 0 1 2 3 0 1 0 0 我一直在尝试以下一些事情 df col df co
  • 更改 numpy 数组的结构强制给定值

    如何缩小栅格数据的比例4 X 6大小成2 X 3如果 2 2 像素内的任何元素包含 1 则大小强制选择 1 否则选择 0 import numpy as np data np array 0 0 1 1 0 0 1 0 0 1 0 0 1
  • Scrapy Splash,如何处理onclick?

    我正在尝试抓取以下内容 我能够收到响应 但我不知道如何访问以下项目的内部数据以抓取它 我注意到访问这些项目实际上是由 JavaScript 和分页处理的 这种情况我该怎么办 下面是我的代码 import scrapy from scrapy
  • 监控培训课程如何运作?

    我试图理解使用之间的区别tf Session and tf train MonitoredTrainingSession 以及我可能更喜欢其中之一 似乎当我使用后者时 我可以避免许多 杂务 例如初始化变量 启动队列运行程序或设置文件编写器以
  • 如何在python mechanize中设置cookie

    向服务器发送请求后 br open http xxxx br select form nr 0 br form MESSAGE 1 2 3 4 5 br submit 我得到了响应标题 其中包含 set cookie Set Cookie
  • 如何使用 numpy 从一维数组创建对角矩阵?

    我正在使用 Python 和 numpy 来做线性代数 我表演了numpy对矩阵进行 SVD 以获得矩阵 U i 和 V 然而 i 矩阵表示为 1 行的 1x4 矩阵 IE 12 22151125 4 92815942 2 06380839
  • Python 中使用 globals() 的原因?

    Python 中有 globals 函数的原因是什么 它只返回全局变量的字典 这些变量已经是全局的 所以它们可以在任何地方使用 我只是出于好奇而问 试图学习Python def F global x x 1 def G print glob
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 将带有 md5 消息摘要和 DESede/CBC/PKCS5Padding 的 3DES 加密的 java 代码转换为 python

    我有这个工作java代码 它使用3DES加密对密码进行加密 import java security MessageDigest import java util Arrays import java util Base64 import
  • TypeError:“NoneType”对象不可下标[重复]

    这个问题在这里已经有答案了 错误 names curfetchone 0 TypeError NoneType object is not subscriptable 我尝试检查缩进 但仍然有错误 我读到 如果数据库中没有文件名记录 变量名
  • 在 Qt 5 中嵌入 Python

    我想将 Python 解释器嵌入到 Qt 5 应用程序中 我在 Qt 5 中有一个工作应用程序 但是当我把 include
  • Python Tkinter 网格复选框

    我想知道是否有一种简单的方法可以使用 Tkinter 创建复选框网格 我正在尝试制作一个由 10 行和 10 列 即 100 个复选框 组成的网格 以便每行只能选择两个复选框 编辑 我正在使用带有spyder的python 2 7 到目前为
  • 使用 Python 导入包含文本和数字数据的文件

    I have a txt file which has text data and numerical data The first two rows of the file have essential information in te
  • 列表中的“u”是什么意思?

    这是我第一次遇到这种情况 刚刚打印了一个列表 每个元素似乎都有一个u在它前面 即 u hello u hi u hey 它是什么意思 为什么列表的每个元素前面都会有这个 由于我不知道这种情况有多常见 如果您想了解我是如何遇到它的 我会很乐意
  • 如何输入可变的默认参数

    Python 中处理可变默认参数的方法是将它们设置为无 https stackoverflow com a 366430 5049813 例如 def foo bar None bar if bar is None else bar ret

随机推荐

  • MSVC 中的链接错误 LNK2019,带有 __imp__ 前缀的未解析符号,但应该来自静态库

    我在 MSVC 中为我为 g 编写的项目遇到了链接问题 问题是这样的 我将 libssh 构建为静态库 作为我的应用程序的一部分 并在 cmake 中添加目标 add library ssh static STATIC libssh SRC
  • CAGradientLayer 显示为纯色

    我试图在视图上设置渐变背景 但下面的代码使 UIView 显示为纯黑色 如果我将白色更改为绿色 渐变将正确显示 将图层的背景颜色更改为 greenColor 会使视图显示为纯绿色 我的猜测是我正在处理某种透明度问题 但我无法解决它 CAGr
  • AttributeError:“PathDistribution”对象没有属性“name”

    我正在尝试使用运行一个简单的工作流程celery并使用this https docs celeryproject org en stable userguide canvas html文档 我正在使用链按顺序运行任务 工作流程如下 提取文件
  • 强制移动版网站为WebView

    我正在将 URL 加载到 Web 视图中以将其显示到我的应用程序中 我遇到的问题是 网站并不总是能识别出我是一部手机 为什么会这样 到底如何强制webview发送到我是手机的网站呢 目前我正在这样做 webview getSettings
  • JSON序列化类继承列表上的属性[重复]

    这个问题在这里已经有答案了 我有一个模型如下 public class TestResultModel public bool Successful get set public string ErrorMessage get set pu
  • if...!true 在 nunjucks 中进行条件渲染

    if true条件句就像魅力一样此处概述 https mozilla github io nunjucks templating html if在文档中 但如果我尝试做类似的事情 if posts length i No project p
  • Python:使用三角函数尽可能高效地估计 Pi

    我有一个作业 需要以计算有效的方式近似 Pi 这是我的策略 我使用单位圆 等腰三角形的角平分线以及 sin 的定义 我画了一张图 例如 如果我想使用六边形 6 点 6 条边 我只需要计算a 0 5 sin 2 pi 2 x 并将其乘以 2
  • 多个选项卡中的 MVC 表单验证 - 自动跳转到带有验证错误的选项卡?

    我有带有多个选项卡的选项卡条 在每个选项卡中 我都有许多文本字段供用户输入 选项卡条被表单包围 并且位于提交按钮下方 我对模型属性的验证进行了注释 使用 Jquery 验证可以很好地进行验证 但是 如果用户在某个字段中输入错误 转到另一个选
  • 参考脚本容器元素?

    我想知道是否有办法获取包含脚本的 DOM 元素的句柄 所以如果我有
  • 合并来自开发和生产数据库的果园内容

    我正在寻找以下问题的解决方案 我们前段时间开发了生产环境上的果园场地 所有站点结构 小部件 部件 图层 都是在首次发布之前创建的 现在我们要添加带有附加页面和图层的子站点 我们希望在开发环境中完成这项工作 并在发布之前对其进行测试 在最近的
  • 所有组合的 Matlab 循环

    我是 Matlab 新手 这似乎超出了我的能力范围 提前感谢您的帮助和感谢 基本上 我有一个带有列标题的多列数据集 列号可能因数据集而异 需要迭代列的所有组合 例如 A B A C B C B D 等 并运行公式 在本例中它是一个相关公式
  • DDD 基础设施服务

    我正在学习 DDD 但我对基础设施层有点迷失 据我了解 所有优秀的 DDD 应用程序 应该有 4 层 表示层 应用程序层 领域层和基础设施层 应使用存储库访问数据库 存储库接口应该位于域层和存储库实现中 位于基础设施中 参考DDD 在哪里保
  • 类类型非类型模板参数初始化不编译

    我的印象是 在新的 C 20 标准下 以下内容应该成为有效代码 struct Foo int a b template
  • Java 日志记录与 Log4J [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否仍然值得将 log4j 库添加到 Java 5 项目中只是为了记录日志 假设文件有一些例外 并有一些不错的翻转设置 或者标准的 util l
  • 使用 SQLite 获取本周的数据

    我试图在 sqlite 中获取本周的数据 但似乎我错过了一些东西 因为我得到了错误的信息 更具体地说 我想检索数据库中具有时间戳的所有数据 其日期属于本周 本周可能从周日或周一开始 即 26 2 12 03 03 12 目前我正在使用这样的
  • 即使有垂直滚动,如何将绝对定位的项目保留在网站底部?

    我有一个具有绝对位置的页脚 footer position absolute bottom 0 height 43px padding 0 background color 333333 width 100 color 737373 tex
  • Django 密码问题

    我正在为用户使用模型 如下所示 class UserForm forms ModelForm class Meta model User fields username password email 但密码字段显示为常规文本字段 而不是密码
  • 如何使用 OpenXml 2.0 将任何文件类型嵌入到 Microsoft Word 中

    我花了很多时间试图找到一种使用 OpenXml 2 0 将任何文件嵌入 Microsoft Word 的好方法 Office 文档相当简单 但其他文件类型 例如 PDF TXT GIF JPG HTML 等 又如何呢 在 C 中 让它适用于
  • 如何使用 Bouncy Castle 将私钥附加到证书

    我有两个 PEM 文件需要在 Bouncy Castle 中加载 一个文件是证书 另一个文件是私钥 使用本文答案中的代码 如何读取 Pem 证书和私钥文件并创建 Bouncy Castle X509Certificate 和 Bouncy
  • Python 中的重试函数 [重复]

    这个问题在这里已经有答案了 前段时间 我需要一个retryR 中的函数处理缓慢的服务器响应 该函数将具有以下行为 尝试一个操作 函数或方法 如果失败 请稍等一下 然后重试 x10 我想出了以下几点 retry lt function fun