Python装饰器是一种非常有用的工具,它可以让我们在不修改函数代码的情况下增加额外的功能。以下是一些关于Python装饰器的基础知识和示例。
装饰器是什么?
装饰器本质上是一个函数,它接收一个函数作为参数,并在不修改该函数代码的情况下,增加一些额外的功能。装饰器常用于日志记录、函数计时、访问控制等场景。
装饰器的基本用法
以下是一个简单的装饰器示例,它会在函数执行前后打印出一些信息:
def my_decorator(func):
def wrapper():
print("装饰器:执行前...")
func()
print("装饰器:执行后...")
return wrapper
@my_decorator
def say_hello():
print("Hello, world!")
say_hello()
当执行 say_hello()
函数时,会输出:
装饰器:执行前...
Hello, world!
装饰器:执行后...
装饰器参数
装饰器可以接受参数,以下是带参数的装饰器示例:
def decorator_with_args(arg):
def my_decorator(func):
def wrapper():
print(f"装饰器参数:{arg}")
func()
return wrapper
return my_decorator
@decorator_with_args("你好")
def say_hello():
print("Hello, world!")
say_hello()
执行 say_hello()
函数时,会输出:
装饰器参数:你好
Hello, world!
更多装饰器应用
装饰器可以应用于类和方法,以下是一个在类中使用装饰器的示例:
def make_blink(func):
def wrapper(*args, **kwargs):
return f"<blink>{func(*args, **kwargs)}</blink>"
return wrapper
@make_blink
def hello():
return "Hello, world!"
print(hello())
执行结果:
<blink>Hello, world!</blink>
以上就是Python装饰器的基础知识和一些应用示例。更多关于Python装饰器的知识,您可以访问我们的Python高级教程进行学习。