特定代码行的类似装饰器的语法

2024-05-26

链接主题(但不重复):装饰器对代码的特定行而不是整个方法进行计时? https://stackoverflow.com/questions/30433910/decorator-to-time-specific-lines-of-the-code-instead-of-whole-method

我知道装饰器通常如何用于 Python 函数。

单行代码是否有类似的概念/语法?

示例:与

def measuretime(lineofcode):
    start = time.time()
    lineofcode()
    print time.time() - start

then

@measuretime
im = Image.open(BytesIO(base64.b64decode(data)))

会被解释为

start = time.time()
im = Image.open(BytesIO(base64.b64decode(data)))
print time.time() - start

Notes:

  • 我知道这样测量执行时间并不是最佳的,最好使用timeit https://stackoverflow.com/q/8220801/1422096等等,但这只是一个随机的例子来展示我正在寻找的东西(单行代码的装饰器)

  • 我正在寻找 1 或 2 行代码解决方案(当然还有函数的定义)。如果解决方案需要超过 2 行代码(即超过类似@measuretime),那么最好放弃并做正常的事情:

      start = time.time()
      im = Image.open(BytesIO(base64.b64decode(data)))
      print time.time() - start
    

如果你想在一行代码之前和之后做一些事情,上下文管理器 https://www.python.org/dev/peps/pep-0343/将是适当的:

from contextlib import contextmanager
import time

@contextmanager
def measuretime():
    start = time.time()
    try:
        yield
    finally:
        print(time.time() - start)

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

特定代码行的类似装饰器的语法 的相关文章

随机推荐

  • RowSpan 在 iTextSharp 中不起作用?

    我正在尝试将 Html 转换为 PDF 我正在使用 iTextSharp 我发现iTextSharp对CSS的支持不太好 事实上我认为 HtmlWorker 线程并不支持这一切 让我的问题更加复杂的是 iTextSharp 似乎也不支持 R
  • 只保留矩阵中某些列具有相同元素的行

    让我举个例子 假设我们有 3 个表 重点关注 N 列 Table 1 Table 2 Table 3 N Values N Values N Values 5 1 5 1 5 1 10 2 6 2 6 21 15 3 10 3 10 5 1
  • EF4 中的 Datetime2 转换

    好吧 在花了无尽的时间谷歌搜索答案之后 我必须在这个问题上添加另一个问题 我有一个包含 2 个日期时间字段的表 由 VS 2010 中的 EF4 EDMX 设计器生成 SQL 2008 中生成的字段是 datetime 而不是 dateti
  • 使用 pyinstaller 将 Django 移植到桌面应用程序

    我正在尝试将 django 项目转换为桌面应用程序 我已经下载了 pyinstaller 的开发人员版本 github pyinstaller pyinstaller hookutils py 修改如下 http www pyinstall
  • Java 中具有级别顺序插入的完整二叉搜索树

    我们接到一个任务 需要编码 二叉搜索树 那个树has to be complete not perfect 这意味着所有不在最低级别或次低级别的节点都应该有 2 个子节点 而最低级别的节点应尽可能远离左侧 我们需要插入到树中等级顺序 所以如
  • Spark 中的 RDD 和 Dataframe 有什么区别? [复制]

    这个问题在这里已经有答案了 嗨 我对 apache Spark 比较陌生 我想了解 RDD 数据帧和数据集之间的区别 例如 我正在从 s3 存储桶中提取数据 df spark read parquet s3 output unattribu
  • preg_match():编译失败:字符类中偏移量的范围无效

    预先感谢您花时间帮助解决此问题 preg match 编译失败 session php 第 278 行偏移量 20 处的字符类范围无效 经过几个月的工作 在我们的服务器上进行 PHP 升级后 它突然停止工作了 这是代码 else Spruc
  • 通过 VBA MS_Access 将 MS Access 表导出为 dBase 5

    如何通过 VBA 将单个表导出为 dBase 5 文件 目前我正在使用这个VBA代码 DoCmd TransferDatabase acExport dBase IV DB Total acTable DB Total C Data Fal
  • 使用 ruby​​ Net::SSH 通过 sudo 读取远程文件

    我必须读取我有权 sudo 读取的远程文件的内容 猫 少或尾巴 我将在 Ruby 中执行此操作 因此我认为应该使用 Net SSH 来执行此操作 该文件是一个日志文件 因此可能会很大 这是我现在正在尝试的代码 require rubygem
  • Alfresco 更新文件 - 错误帖子

    我正在尝试更新 Alfresco 中的文件 我编写了以下代码 var csrf header Alfresco util CSRFPolicy getHeader var csrf token Alfresco util CSRFPolic
  • 在 UIView 中的贝塞尔曲线路径内像草图颜色一样绘制/绘制

    我正在 UIView 上的 UIBezierPath 的帮助下绘制形状图层 CAShapeLayer pathLayer CAShapeLayer layer pathLayer frame CGRectMake view frame or
  • 为什么非交互式批处理脚本认为我按下了 Control-C?

    因此 当输出日志中突然出现以下内容时 我的批处理脚本运行得很好 21 27 13 99 c apps w7lab scripting gt some command Error 3221225786 CTerminate batch job
  • 在子网站中使用邮政和 Hangfire

    我一直在尝试在我的 MVC5 站点上使用 Postal 当我将我的网页托管为子网站时 即http localhost 子站点 http localhost Subsite我收到错误 虚拟路径 映射到另一个应用程序 这是不允许的 我已经将其调
  • 将字符串值赋给指针

    char tempMonth char month 4 month 0 j month 1 a month 2 n month 3 0 如何将月份分配给 tempMonth 谢谢 最后如何打印出来 thanks In C month mon
  • 如果该值未在语句中的其他任何地方使用,为什么要使用 ++i 而不是 i++?

    我很清楚在 C 中 int someValue i array i otherValue 相比之下有不同的效果 int someValue i array i otherValue 但每隔一段时间我就会看到 for 循环中带有前缀增量的语句
  • wglCreateContextAttribsARB 函数崩溃

    我尝试写下代码 我有InitializeOGL 的代码 bool Ogl InitializeOGL bool vSync cout lt lt Init OpenGL lt
  • 按时间范围聚合

    我有一个数据集 其中包含日期 yyyy mm dd 和时间 h m s 以及温度 float 作为单独的列 我想通过平均函数聚合每天的温度值 问题是 我不知道如何查询时间属性来表示例如聚合 h m 0 5 s and h m 5 10 s
  • 作为计划任务运行 C# 应用程序

    我有一个 C 应用程序 设计为与 Windows 窗体一起运行 但现在需要作为计划任务运行 我对此遇到了问题 我认为这是因为它需要 无头 因为它不应该有用户环境的概念 该程序已编写为无人值守运行 因为它有一个 AUTO 参数 然后该参数将从
  • FullCalendar 重复事件创建重复项

    我正在为我的新网站实现一个日历 我从后端应用程序检索事件并使用 fullcalendar 在模式中显示结果 我还使用 fullcalendar 的重复功能 https fullcalendar io docs recurring event
  • 特定代码行的类似装饰器的语法

    链接主题 但不重复 装饰器对代码的特定行而不是整个方法进行计时 https stackoverflow com questions 30433910 decorator to time specific lines of the code