当遇到需要包装函数的问题时,可以使用以下方法进行解决:
def decorator(func):
def wrapper(*args, **kwargs):
# 添加额外功能
print("Before function execution")
# 调用原始函数
result = func(*args, **kwargs)
# 添加额外功能
print("After function execution")
return result
return wrapper
@decorator
def my_function():
print("Function execution")
# 调用包装后的函数
my_function()
输出结果:
Before function execution
Function execution
After function execution
def outer_function():
# 外部函数中的变量
message = "Function execution"
def inner_function():
# 添加额外功能
print("Before function execution")
# 执行原始函数
print(message)
# 添加额外功能
print("After function execution")
# 返回内部函数
return inner_function
# 获取包装后的函数
wrapped_function = outer_function()
# 调用包装后的函数
wrapped_function()
输出结果:
Before function execution
Function execution
After function execution
这些方法可以帮助我们在不修改原始函数的情况下,对函数进行包装并添加额外功能。
下一篇:包含数据的函数参数