Python 装饰器:增强函数功能的利器
装饰器是 Python 中一个特殊的语法,用于修改或增强函数的功能。装饰器本质上是一个函数,它接受一个函数作为输入,并返回一个新的函数作为输出。
装饰器的语法如下:
@decorator
def func():
pass
装饰器可以在不修改原函数的情况下,为函数添加额外的功能。常见的装饰器用途包括日志记录、性能分析、输入验证等。
以下是一个简单的装饰器示例,用于在函数执行前后输出日志信息:
def log_decorator(func):
def wrapper(*args, **kwargs):
print('Calling function:', func.__name__)
result = func(*args, **kwargs)
print('Function', func.__name__, 'finished')
return result
return wrapper
@log_decorator
def add(a, b):
return a + b
print(add(1, 2))
输出结果为:
Calling function: add
Function add finished
3
在上面的例子中,log_decorator 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 wrapper。wrapper 函数在调用原函数之前和之后打印日志信息。通过将装饰器应用到 add 函数上,add 函数的功能被增强,同时不改变原函数的定义。
需要注意的是,装饰器是在函数定义时就被执行的,而不是在函数调用时执行的。这意味着装饰器可以在函数定义之后立即生效。
原文地址: https://www.cveoy.top/t/topic/fwUI 著作权归作者所有。请勿转载和采集!