题目2:装饰器定义--文件命名:do_decorator 编写一个装饰器,能计算其他函数的运行时间;并将其使用在一个计算N的阶层的函数上;
时间: 2024-02-27 10:55:15 浏览: 60
装饰器(Decorator):从字面上理解,就是装饰对象的器件。
好的,以下是装饰器的定义和使用:
```python
import time
def calculate_time(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print("函数 %s 运行时间为 %f 秒" % (func.__name__, end_time - start_time))
return result
return wrapper
@calculate_time
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
print(factorial(5))
```
在这个例子中,我们定义了一个名为 `calculate_time` 的装饰器,它接受一个函数作为参数,返回一个新的函数。新函数 `wrapper` 在运行被装饰的函数之前获取当前时间戳,然后运行被装饰的函数并返回结果,最后再获取当前时间戳并计算函数运行时间。最后,输出函数运行时间并返回运行结果。
我们将 `calculate_time` 装饰器应用到计算阶乘的函数 `factorial` 上,并通过 `factorial(5)` 计算 5 的阶乘。在运行时,我们可以看到函数 `factorial` 的运行时间。
阅读全文