面试题答案
一键面试def operation_decorator(func):
def wrapper(*args, **kwargs):
operation = kwargs.get('operation')
a, b = args
if operation == 'product':
return a * b
elif operation == 'difference':
return a - b
else:
return func(*args)
return wrapper
def base_function(a, b):
return a + b
new_function = operation_decorator(base_function)
你可以使用如下方式调用:
# 调用原始功能(求和)
result_sum = new_function(3, 5)
print(result_sum)
# 调用扩展功能(求积)
result_product = new_function(3, 5, operation='product')
print(result_product)
# 调用扩展功能(求差)
result_difference = new_function(3, 5, operation='difference')
print(result_difference)