Python中的装饰器是什么?如何使用?
在Python中,装饰器(Decorator)是一种特殊类型的函数,它可以在不改变原函数代码的情况下,为原函数添加额外的功能或行为。
装饰器的基本语法如下:
def decorator(function):
# 添加额外功能的代码
def wrapper(*args, **kwargs):
# 调用原函数的代码
result = function(*args, **kwargs))
# 返回结果的代码
return result
return wrapper
使用装饰器的方法如下:
- 定义一个需要装饰的函数。
- 使用
@decorator
语法将装饰器应用到函数上。
例如,定义一个计算两数之和的原函数,并使用装饰器添加日志功能:
# 原函数
def add_numbers(a, b):
return a + b
# 装饰器
def log_decorator(function):
def wrapper(*args, **kwargs):
print(f"Calling {function.__name__} with args: {args}, kwargs: {kwargs}")
result = function(*args, **kwargs))
return result
return wrapper
# 使用装饰器
@log_decorator
def add_numbers_with_log(a, b):
return a + b
# 测试
print(add_numbers(3, 5))) # 输出:8
print(add_numbers_with_log(3, 5))) # 输出:调用 add_numbers_with_log 函数,with args: (3, 5)), kwargs: {}: 调用 add_numbers 函数,with args: (3,), kwargs: {b: 5}}, 结果:8
还没有评论,来说两句吧...