python装饰器传参数
时间: 2024-12-02 16:12:10 浏览: 2
Python装饰器使用实例:验证参数合法性
在Python中,装饰器是一种特殊类型的函数,它可以修改其他函数的功能,通常用于添加额外的行为或功能,而无需直接修改它们的源码。装饰器可以接受参数,这是因为它们本质上也是普通函数,可以接收输入并返回一个新的函数。
当需要传递参数给装饰器时,你可以将这些参数作为装饰器函数的实参。下面是一个简单的例子:
```python
def my_decorator(param1, param2):
def wrapper(func):
def inner_function(*args, **kwargs):
# 在这里,你可以使用传入的param1和param2对func进行操作
result = func(*args, **kwargs)
print(f"Using decorator with params {param1} and {param2}")
return result
return inner_function
return wrapper
# 使用装饰器,并传入参数
@my_decorator("Hello", "World")
def say_hello(name):
return f"Hello, {name}"
print(say_hello("Alice")) # 输出: Using decorator with params Hello and World; Hello, Alice
```
在这个例子中,`my_decorator`接受两个参数,然后创建了一个新的函数`inner_function`,这个新函数会在原来`say_hello`的基础上增加打印参数的操作。
阅读全文