装饰器的语法糖
@timemaster
class中的self
表示当前是哪个实例化对象,self代表实例对象本身
Python装饰器是一种函数装饰技术,它可以用于在不改变原函数结构的情况下增加新的功能。装饰器本质上是一个Python函数,它接受另一个函数作为参数,并返回一个包装后的函数。
装饰器的语法为:在需要增加功能的函数上方加上@decorator_name
,decorator_name
是装饰器的名称,可以是任何标识符。例如:
@my_decorator
def my_function():
# do something
使用装饰器可以方便地在函数执行前后添加额外的代码。例如,以下装饰器可以用于计算函数的运行时间:
import time
def calculate_time(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Function {func.__name__} execution time: {end_time - start_time} seconds")
return result
return wrapper
@calculate_time
def my_function():
# do something
my_function() # 执行 my_function(),并输出其运行时间
在上述例子中,calculate_time
是一个装饰器函数,它接受另一个函数作为参数,并返回一个包装后的函数 wrapper
。wrapper
函数完成了对 my_function
函数的运行时间统计,然后返回原函数的结果。因此,当我们在 my_function
函数上方添加 @calculate_time
装饰器后,该函数的执行会自动增加计时功能。