🌟 做什么
import time # 定义一个装饰器函数,用来记录函数执行时间 def calculate_time(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 print("nihao","hao",sep="wudi") return wrapper # 使用装饰器来装饰函数 @calculate_time def some_function(): # 模拟函数执行 time.sleep(2) print("函数执行完成") # 调用被装饰后的函数 some_function()
🌟 解释
在这个例子中,calculate_time 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 wrapper。这个 wrapper 函数记录了被装饰函数执行的时间,并在函数执行完成后输出执行时间。@calculate_time 语法应用了这个装饰器到 some_function(),使得 some_function() 在执行时会自动调用 calculate_time 并记录执行时间。
当你运行这段代码时,它会输出类似于以下内容:
函数执行完成
这个例子展示了如何使用装饰器来扩展函数的功能,而不需要修改原始函数的定义。