Menu
CoddyTech

装饰器简介

本课属于 Coddy Python 学习旅程的“面向对象编程”单元。第 9 课,共 64 课。

装饰器是一种修改或增强函数和类的方式,无需更改它们的原始代码。装饰器使用 @ 符号。

下面是一个简单装饰器的示例: 

def my_decorator(func):
    def wrapper():
        print("Before function runs")
        func()
        print("After function runs")
    return wrapper

使用 @ 应用装饰器:

@my_decorator
def say_hello():
    print("Hello!")

调用经过装饰的函数:

say_hello()

输出:

Before function runs
Hello!
After function runs

@my_decorator 等价于这样写:

def say_hello():
    print("Hello!")

say_hello = my_decorator(say_hello)

不过,@ 语法更简洁,也更容易阅读。

要点:装饰器会包装函数,以添加额外功能,同时不修改原函数代码

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: Python 在线编译器