当前位置:  首页>> 技术小册>> Python面试指南

答案:
装饰器是Python中的一个高级特性,可以修改或增强现有函数的行为。它本质上是一个可以接收函数作为输入并返回修改后的函数的函数。

使用装饰器可以实现许多有用的功能,例如:

记录函数的执行时间或日志
缓存函数的输出结果
限制函数的调用次数或参数类型
添加身份验证或授权等功能
装饰器可以通过在函数定义前使用 @ 符号来应用。下面是一个简单的示例:

  1. # 定义一个装饰器函数,用于打印函数的执行时间
  2. import time
  3. def time_it(func):
  4. def wrapper(*args, **kwargs):
  5. start = time.time()
  6. result = func(*args, **kwargs)
  7. end = time.time()
  8. print(f"{func.__name__} 执行时间:{end - start} 秒")
  9. return result
  10. return wrapper
  11. # 应用装饰器
  12. @time_it
  13. def my_func(n):
  14. result = 0
  15. for i in range(n):
  16. result += i
  17. return result
  18. # 调用函数
  19. my_func(1000000) # 输出 my_func 执行时间:0.04287219047546387 秒

在上面的示例中,我们定义了一个名为 time_it 的装饰器函数,它接收一个函数作为输入,并返回一个修改后的函数 wrapper。wrapper 函数在调用原始函数之前记录开始时间,在调用之后记录结束时间,并打印出执行时间。最后,装饰器函数返回修改后的函数。

我们使用 @time_it 来应用这个装饰器函数到 my_func 函数上。当我们调用 my_func(1000000) 时,装饰器函数会自动被调用,并记录函数执行的时间。最后,它会返回函数的输出结果。


该分类下的相关小册推荐: