Python装饰器教学
一、装饰器简介
在Python中,装饰器是一种高级语法特性,允许你修改或增强函数、方法或类的行为,而无需修改其源代码。装饰器本质上是一个接受函数作为参数的函数,并返回一个新的函数对象。
二、装饰器的基本用法
下面是一个简单的装饰器示例:
def my_decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
输出:
Before function call
Hello!
After function call
在这个例子中,my_decorator
是一个装饰器函数,它接受一个函数 func
作为参数,并返回一个新的函数 wrapper
。wrapper
函数在调用原始函数 func
之前和之后分别打印一些内容。
通过使用 @my_decorator
语法,我们可以将装饰器应用到任何函数上,如 say_hello
函数。这实际上是将 say_hello
函数作为参数传递给 my_decorator
函数,并将返回的新函数对象重新赋值给 say_hello
。
三、带参数的装饰器
如果原始函数需要接受参数,我们可以在 wrapper
函数中添加相应的参数,如下所示:
def my_decorator(func):
def wrapper