陶远航 发表于 2023-4-30 16:48:29

Python中的装饰器是什么,举个例子

如题

isdkz 发表于 2023-4-30 16:51:19

Python中的装饰器是一种特殊的函数,它可以用来修改其他函数的行为,而不需要修改它们的源代码。装饰器函数接受一个函数作为参数,并返回一个新的函数,新的函数包装了原始函数,并提供了额外的功能或修改了原始函数的行为。

以下是一个简单的装饰器示例,它可以用来计算一个函数的执行时间:

import time

def timer(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

@timer
def my_function():
    time.sleep(2)

my_function()


在这个示例中,我们定义了一个名为timer的装饰器函数,它接受一个函数作为参数并返回一个新的函数wrapper 。在wrapper函数中,我们记录了函数执行的起始时间和结束时间,并计算了执行时间。然后,我们打印出函数名和执行时间,并返回原始函数的结果。

我们可以使用@timer语法来应用装饰器,它等价于my_function = timer(my_function) 。当我们调用my_function()时,实际上会执行wrapper函数,并在执行完原始函数后打印出执行时间。
页: [1]
查看完整版本: Python中的装饰器是什么,举个例子