如何使用Python编写一个装饰器函数
发布时间:2023-07-06 06:28:11
装饰器是Python中常用的一个概念,可以在不修改原函数的情况下,给函数添加额外的功能。装饰器函数接收一个函数作为参数,并返回一个新的函数,新的函数通常在原函数调用前后执行一些额外的操作。
下面是一个使用Python编写装饰器的示例代码:
# 定义一个装饰器函数
def my_decorator(func):
# 定义一个内部函数,用来添加额外功能
def wrapper(*args, **kwargs):
# 在原函数执行前打印一句话
print("正在执行装饰器函数")
# 调用原函数,并获取返回值
result = func(*args, **kwargs)
# 在原函数执行后打印一句话
print("装饰器函数执行完毕")
# 返回原函数的返回值
return result
# 返回内部函数
return wrapper
# 使用装饰器修饰原函数
@my_decorator
def hello_world():
print("Hello, world!")
return "Hello"
# 调用经过装饰器修饰后的函数
result = hello_world()
print(result)
运行上述代码,会得到以下输出:
正在执行装饰器函数 Hello, world! 装饰器函数执行完毕 Hello
该示例中,hello_world函数被装饰器my_decorator修饰,当调用hello_world函数时,会先执行装饰器内部的逻辑(打印一句话),然后再执行原函数的逻辑(打印"Hello, world!"),最后再执行装饰器剩下的逻辑(再次打印一句话)。
通过这个简单的示例,我们可以看到装饰器可以方便地给函数添加额外的功能,而不需要修改原函数的逻辑。
