Menu
CoddyTech

装饰器的用法

Coddy Python 装饰器 课程的第 5 课,共 12 课。

在 Python 中,装饰器是一种函数,它接收另一个函数作为输入,并扩展该输入函数的行为,而不直接修改其代码。装饰器是一种强大的方式,可以灵活且可重复使用地修改或增强函数的行为。

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

def my_decorator(func):
    def wrapper():
        print("Before the function is called.")
        func()
        print("After the function is called.")
    return wrapper

在这个示例中,my_decorator 函数接收另一个函数 func 作为输入,并返回一个名为 wrapper 的新函数。

wrapper 函数会在调用 func 函数之前和之后添加一些行为。

challenge icon

挑战

简单

编写一个名为 debug 的装饰器函数,它接收一个函数 func 作为输入,并返回一个新函数。每次调用这个新函数时,它都会打印 func 的名称和 func 的返回值。

要获取 func 的名称,请使用 func.__name__。

下面是使用 debug 装饰器的示例:
 

def hello():
    return "Hello"

debug_hello = debug(hello)
debug_hello()

在这个示例中,我们使用 debug 装饰器包装 hello 函数,并创建一个名为 debug_hello 的新函数。调用 debug_hello() 时,装饰器会打印:

Calling hello
hello returned: Hello

你可以假设传递给 debug 的所有函数都不接收参数。

亲手试试

Python 装饰器中的所有课

自己练习: Python 在线编译器