装饰器(Decorator)是一种设计模式,用于在不修改原有代码的情况下,动态地给对象添加新的功能。在Python中,装饰器是一种特殊的函数,可以接受一个函数作为参数,并返回一个新的函数。装饰器通常用于日志记录、访问控制、性能测试、事务处理等场景。
在装饰器中处理不同类型的返回值可以通过检查返回值的类型并相应地处理。以下是一个示例代码:
import functools
def handle_return_values(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if isinstance(result, int):
print(f"Received an integer: {result}")
elif isinstance(result, str):
print(f"Received a string: {result}")
elif isinstance(result, list):
print(f"Received a list: {result}")
else:
print(f"Received an unknown type: {type(result)}")
return result
return wrapper
@handle_return_values
def example_function(value):
if value == 1:
return 42
elif value == 2:
return "hello"
elif value == 3:
return [1, 2, 3]
else:
return {"key": "value"}
# 测试示例函数
example_function(1)
example_function(2)
example_function(3)
example_function(4)
isinstance
函数检查返回值的类型。通过这种方式,装饰器可以灵活地处理不同类型的返回值,并且不会影响原有函数的逻辑。
领取专属 10元无门槛券
手把手带您无忧上云