如何使用装饰器来定义函数的装饰器?
装饰器定义:
def decorator(func):
def wrapper(*args, **kwargs):
print("Before calling the function.")
result = func(*args, **kwargs)
print("After calling the function.")
return result
return wrapper
使用装饰器定义函数的装饰器:
@decorator
def my_function(x, y):
return x + y
运行代码:
print(my_function(1, 2))
输出:
Before calling the function.
After calling the function.
3
解释:
-
decorator
定义了一个装饰器函数。 - 当将装饰器应用于函数时,它创建一个新的装饰器函数。
- 新的装饰器函数包装原始函数,并在函数执行之前和之后打印消息。
-
my_function
使用decorator
定义了一个装饰器。 - 运行代码调用
my_function
,因为decorator
创建了一个新的装饰器,该装饰器在执行my_function
时被调用。
注意:
- 装饰器可以接收任何数量和类型的参数。
- 装饰器可以返回任何类型的值。
- 装饰器可以被嵌套使用。