欢迎访问宙启技术站
智能推送

如何使用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!"),最后再执行装饰器剩下的逻辑(再次打印一句话)。

通过这个简单的示例,我们可以看到装饰器可以方便地给函数添加额外的功能,而不需要修改原函数的逻辑。