Python用装饰器实现函数计时功能。

简介: 【2月更文挑战第11天】【2月更文挑战第29篇】Python用装饰器实现函数计时功能。

在 Python 中,装饰器是一种用于修改其他函数或方法的特殊函数。通过使用装饰器,可以在不修改原始函数代码的情况下,为函数添加额外的功能,例如计时功能。以下是一个使用装饰器实现函数计时功能的示例代码:

import time

# 定义装饰器函数
def time_decorator(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"函数{func.__name__}执行时间:{end_time - start_time} 秒")
        return result
    return wrapper

# 被装饰的函数
@time_decorator
def my_function():
    # 函数的具体逻辑
    for i in range(5):
        print(i)

my_function()

在上述代码中,定义了一个名为time_decorator的装饰器函数,它接受一个函数func作为参数。在装饰器函数内部,定义了一个内部函数wrapper,用于包装被装饰的函数。在wrapper函数中,使用time.time()函数记录函数执行前的时间start_time,然后执行被装饰的函数func,并记录函数执行后的时间end_time。最后,计算并打印出函数的执行时间。

通过在需要计时的函数上使用@time_decorator装饰器,就可以在函数执行时自动计时并输出执行时间。在示例中,my_function函数被装饰器@time_decorator装饰,执行my_function函数时会输出函数的执行时间。

需要注意的是,装饰器函数可以用于装饰任何函数,包括自定义函数、内置函数或第三方库中的函数。此外,装饰器还可以接受参数,以便更灵活地控制装饰器的行为。希望这段代码能够帮助到你,如果你还有其他疑问,请随时向我提问。

相关文章
|
3天前
|
数据安全/隐私保护 Python
Python装饰器是高阶函数,用于在不修改代码的情况下扩展或修改函数行为。它们提供可重用性、模块化和无侵入性的功能增强。
【6月更文挑战第20天】Python装饰器是高阶函数,用于在不修改代码的情况下扩展或修改函数行为。它们提供可重用性、模块化和无侵入性的功能增强。例如,`@simple_decorator` 包装`my_function`,在调用前后添加额外操作。装饰器还能接受参数,如`@logged("INFO", "msg")`,允许动态定制功能。
11 6
|
2天前
|
缓存 数据库连接 开发者
Python中有哪些容易被忽视的核心功能
Python编程中,一些被忽视的核心功能包括:`argparse`库用于命令行参数解析,简化工具编写;使用`with`语句配合上下文管理器确保资源正确释放;列表推导式和生成器表达式创建列表和轻量级迭代;字典的`setdefault()`方法避免键不存在时的额外检查;默认参数值简化函数调用;`namedtuple`增加元组可读性;集合操作符执行并集、交集和差集;`lru_cache`缓存函数调用提高性能;`enumerate()`在迭代列表时同时访问索引和值;以及`Counter`统计元素频率。掌握这些功能可提升代码质量和效率。
|
2天前
|
JavaScript Python
Python if 的高级功能有哪些?
**Python 条件语句简介** `if` 用于检查变量是否为真,真值包括非零数、非空字符串、非空列表等。`if xxx:` 当 `xxx` 为真时执行代码块,否则跳过。`if xxx == xxx` 使用 `==` 比较值是否相等,`if xxx is xxx` 则检查是否为同一对象。
|
2天前
|
Python
Python通过函数名调用函数的几种场景
Python通过函数名调用函数的几种场景
5 0
|
2天前
|
算法 C语言 Python
简单遗传算法优化简单一元函数(python)
简单遗传算法优化简单一元函数(python)
4 0
|
8天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!
|
5天前
|
开发者 Python
【干货】Python编程惯例
【干货】Python编程惯例
11 1
|
8天前
|
Shell Python
GitHub星标破千Star!Python游戏编程的初学者指南
Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种,与其说是教编程的书,倒不如说是在教“游戏制作软件”,或教授使用一种呆板的语言,使得编程“简单”到不再是编程。而第二种,它们就像是教数学课一样教编程:所有的原理和概念都以小的应用程序的方式呈现给读者。
|
8天前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。