【Python每日作业】Day1: 写一个记录函数执行时间的装饰器

大家好,我是 bug,一个普通程序员。

程序员的快速成长,在于多练习,多输出,多分享,多链接。
然而,执行力太差了,我错过了很多好机会。

[En]

However, the execution was so poor that I missed a lot of good opportunities.

开始永远不会太晚。欢迎您的关注,见证一个普通程序员的成长。

[En]

It is never too late to start. Welcome your attention and witness the growth of an ordinary programmer.

这里先立个 Flag,参加 涛哥聊Python技术圈 知识星球的每日作业打卡,先坚持 7 天。

问题:

Day1
Q15: 写一个记录函数执行时间的装饰器。

解决:

要完成今天的作业,对我来说有两道难题:

[En]

To finish today’s homework, there are two difficult problems for me:

其一:Python 的开发环境。
其二:身为 Python 初学者,不太理解什么是装饰器,需要研究下。

解决第一个问题,Python 开发环境。
百度关键词,windows + python 环境配置。
你可以准确地找到很多文章,都是相当详细的。

[En]

You can accurately find a lot of articles, all of which are quite detailed.

找到新的生产日期并按照逐步配置轻松完成。

[En]

Find a new production date and follow the step-by-step configuration to do it easily.

Python 用的 3.10 的版本,开发工具用的 PyCharm,没什么特殊配置,省事。

第二个问题,Python 装饰器。
同样先百度,有条件可以 Google。
找到相关文章后,阅读并学习。

[En]

After finding the relevant articles, read and learn.

学习了 python 函数的常见用法后,轻松将 demo 写完。

修饰符函数定义一个修饰符函数,另一个函数用该修饰符函数进行修饰。当该函数被执行时,相应的修饰符函数中的函数也被执行。

[En]

The decorator function defines one decorator function, and the other function is decorated with this decorator function. When this function is executed, the functions in the corresponding decorator function are also executed.

通过 @装饰器函数名 的调用方式实现。

代码如下:

import time

def func_decorator_execute_and_execution_time_report(func):
    def wrap_the_func():
        before_func_time = time.time()
        func()
        after_func_time = time.time()
        execution_time = after_func_time - before_func_time
        print("func execution time: " + str(execution_time))

    return wrap_the_func

@func_decorator_execute_and_execution_time_report
def hello_bug():
    # 函数暂停 2 秒再执行
    time.sleep(2)
    print("hello bug")

hello_bug()
运行结果:
hello bug
func execution time: 2.004734992980957

总结:

好了,Day1 打卡结束,学到了 python 函数的常见用法,以及装饰器函数的定义和使用。

如果你也正在学习 Python ,欢迎和 bug 一起交流。
关注公众号 bug 玩编程,一起玩编程!

Original: https://www.cnblogs.com/autismbug/p/15428618.html
Author: bug玩编程
Title: 【Python每日作业】Day1: 写一个记录函数执行时间的装饰器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/511072/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 全网最牛自动化测试框架系列之pytest(6)-Fixture(固件)

    【文章末尾给大家留下了大量的福利】 什么是固件 Fixture 翻译成中文即是固件的意思。它其实就是一些函数,会在执行测试方法/测试函数之前(或之后)加载运行它们,常见的如接口用例…

    Python 2023年9月12日
    052
  • Notebook交互式完成目标检测任务

    摘要:本文将介绍一种在Notebook中进行算法开发的新方式,新手也能够快速训练自己的模型。 目标检测是计算机视觉中非常常用且基础的任务,但是由于目标检测任务的复杂性,往往令新手望…

    Python 2023年10月25日
    059
  • 四十分钟带你玩儿转Python-OpenCV(一)

    14天学习训练营导师课程:李宁《Python Pygame游戏开发入门与实战》李宁《计算机视觉OpenCV Python项目实战》1李宁《计算机视觉OpenCV Python项目实…

    Python 2023年8月1日
    062
  • pandas模块之SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame

    利用python进行数据处理的时候,经常会使用到pandas这一强大的数据处理模块。将数据存储为DataFrame形式,进行一系列的操作。 之前以及最近在处理数据的时候经常出现到的…

    Python 2023年8月8日
    077
  • 文盘Rust — struct 中的生命周期

    最近在用rust 写一个redis的数据校验工具。redis-rs中具备 redis::ConnectionLike trait,借助它可以较好的来抽象校验过程。在开发中,不免要定…

    Python 2023年10月19日
    040
  • Thrift RPC添加access log

    当我们在部署web服务的时候,web容器通常都会记录来自客户端的访问日志。而当我们使用Thrift RPC服务的时候,Thrift服务则不会给我们自动记录客户端的访问日志。 通过这…

    Python 2023年10月13日
    058
  • 一文搞懂机器学习中的缺失值处理(超详细)

    缺失值处理 数据缺失的原因 缺失值的产生的原因多种多样,主要分为机械原因和人为原因。机械原因是由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败,存储器损坏,…

    Python 2023年8月20日
    067
  • 数据分析可视化之seaborn速成(一)

    数据分析可视化之seaborn速成(一) 在进行 数据分析前最重要的一点,是了解你的数据,最直接最直观了解数据的方法呢,就是把他的分布,走势等等特征在一张图片上画出来。seabor…

    Python 2023年9月3日
    054
  • numpy中的滑动窗口函数

    lib.stride_tricks.sliding_window_view(x, window_shape, axis=None, *, subok=False, writeabl…

    Python 2023年8月28日
    0152
  • 深入理解numpy库中的order参数

    创建数组对象中的order 第一个参数代表第一个维度(行)之间相差的字节数,a[0,0]与a[1,0]相差12个字节 第二个参数代表第二个维度(列)之间相差的字节数,a[0,0]与…

    Python 2023年8月24日
    0128
  • python画图将标题中有变量_python – 如何在matplotlib中将变量名称作为标题打印

    在python中无法轻松获取变量的名称(参见此 answer).对于传递给python中的函数的变量,有使用inspect的hacky解决方案,详细信息 here以及基于此 ans…

    Python 2023年9月4日
    059
  • PostgreSQL执行计划:Bitmap scan VS index only scan

    之前了解过postgresql的Bitmap scan,只是粗略地了解到是通过标记数据页面来实现数据检索的,执行计划中的的Bitmap scan一些细节并不十分清楚。这里借助一个执…

    Python 2023年6月12日
    069
  • python做飞机大战游戏_python实现飞机大战游戏

    飞机大战(Python)代码分为两个python文件,工具类和主类,需要安装pygame模块,能完美运行(网上好多不完整的,调试得心累。实现出来,成就感还是满满的),如图所示: 完…

    Python 2023年9月23日
    043
  • Pytest常用插件

    本文首发于:行者AI Pytest是Python的一种单元测试框架,与unittest相比,使用起来更简洁、效率更高,也是目前大部分使用python编写测试用例的小伙伴们的第一选择…

    Python 2023年9月12日
    086
  • 2022版最新最详细Manim开发环境搭建

    安装前提示 Python版本要求: Python3.7+ 使用 pip 安装时,最好使用镜像,负责可能会因为网络安装失败,因为安装依赖较多且依赖包较大。 以豆瓣源镜像示例: pip…

    Python 2023年10月31日
    073
  • Python ❀ 变量与数据类型

    ​​1、变量​​ ​​1.1 变量的命名与使用规则​​ ​​1.2 变量名错误​​ ​​2、字符串​​ ​​2.1 修改字符串的大小写​​ ​​2.2 合并字符串​​ ​​2.3 …

    Python 2023年5月25日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球