装饰器是Python中一种特殊的功能,它允许我们修改或增强函数的行为,而无需修改函数本身。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数,这个新函数在原始函数的基础上添加了一些额外的功能。
在Python中,我们可以使用@符号来定义装饰器。装饰器接收两个参数:函数和调用时的上下文对象。我们可以通过上下文对象来访问调用函数的对象(如类或实例)以及调用函数的方式(如类方法或实例方法)。
下面是一个简单的装饰器示例:
“`python
def my_decorator(func):
def wrapper():
print(“Before function call.”)
func()
print(“After function call.”)
return wrapper
@my_decorator
def my_function():
print(“Inside the function.”)
my_function()
“`
输出:
“`
Before function call.
Inside the function.
After function call.
“`
在这个例子中,`my_decorator`函数接收一个函数作为参数,并返回一个新的函数`wrapper`。`wrapper`函数在调用`my_function`之前和之后分别打印一条消息。通过使用@符号,我们将`my_decorator`装饰器应用于`my_function`,使得在调用`my_function`时,实际上会执行`wrapper`函数。
装饰器的一个常见用途是记录函数的调用次数。例如:
“`python
def count_decorator(func):
def wrapper(*args, **kwargs):
wrapper.count +
发表评论