如何在 Python 中使用装饰器?
装饰器语法:
def decorator_name(function):
# 代码进行装饰的逻辑
return function
示例:
def log_decorator(func):
def wrapper(*args, **kwargs):
print("Calling function:", func.__name__)
result = func(*args, **kwargs)
print("Function returned:", result)
return result
return wrapper
@log_decorator
def my_function():
return "Hello, world!"
print(my_function())
运行结果:
Calling function: my_function
Hello, world!
Function returned: Hello, world!
解释:
-
log_decorator
是一个装饰器函数,它接受一个函数作为参数。 - 当
my_function
被调用时,log_decorator
被调用。 -
log_decorator
中定义了一个新的函数wrapper
。 -
wrapper
接受my_function
的所有参数和关键字作为输入,并执行原始函数的逻辑。 -
wrapper
最后返回原始函数的返回值。 - 当我们调用
my_function
时,log_decorator
会被调用,并打印出调用它的信息。 - 然后,原始函数的逻辑会执行,并返回结果。
其他功能:
- 您可以使用装饰器传递参数。
- 您可以使用装饰器返回一个新的函数。
- 您可以使用装饰器取消装饰。