在Python中,装饰器可以接受参数,可以通过在装饰器函数外再包一层函数来实现传递参数。例如:
def my_decorator(param):
def decorator(func):
def wrapper(*args, **kwargs):
print("Decorator with param: {}".format(param))
return func(*args, **kwargs)
return wrapper
return decorator
@my_decorator("Hello")
def say_hello():
print("Hello, world!")
say_hello()
在上面的例子中,my_decorator
是一个接受参数的装饰器函数。当使用装饰器时,可以传递参数给my_decorator
,然后返回一个装饰器函数decorator
,该函数接受被装饰函数作为参数,并返回包裹原始函数的新函数wrapper
。在wrapper
函数中,我们可以使用传递给my_decorator
的参数。