Python 中的装饰器是一个非常强大的功能,它允许你在不修改函数本身代码的情况下,对函数的行为进行扩展或修改。装饰器本质上是一个函数,它接受一个函数作为参数,返回一个新的函数,并且新函数的行为与原函数不同。
1. 简单的装饰器示例
def uppercase(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
return result.upper()
return wrapper
@uppercase
def say_hello(name):
return f"hello, {name}"
print(say_hello("Alice")) # Output: HELLO, ALICE
在这个例子中:
uppercase 函数是一个装饰器,它接受一个函数 func 作为参数。
uppercase 函数返回一个新的函数 wrapper,wrapper 函数会在调用原函数 func 后,将结果转换成大写形式。
使用 @uppercase 语法,我们可以将 say_hello 函数"装饰"为大写输出。
2. 装饰器的一些常