» Python快速入门 » 3. 高级篇 » 3.2 装饰器

装饰器

装饰器接受一个函数作为输入,为其添加一些功能,然后返回增强的新函数。以 @wrapper 形式作用于其他函数。 正如你在上一节中所看到的,classmethod()staticmethod() 就是常见的装饰器。

构建装饰器

def bigger(func):
    def augmented_func():
        print("Bigger", end=" ")
        func()
    return augmented_func

应用装饰器到无参函数

@bigger
def show_fruit():
    print("Apple is great!")

show_fruit() # Bigger Apple is great!

应用装饰器到带参函数

def bigger(func):
    def augmented_func(*args, **kwargs):
        print("Bigger", end=" ")
        func(*args, **kwargs)
    return augmented_func

@bigger
def show_fruit(name, adjective):
    print(f"{name} is {adjective}!")

show_fruit("Orange", "Sweeter") # Bigger Orange is Sweeter!

代码挑战

修改编辑器中代码使其输出: --------------- LiteRank.cn! ---------------

Loading...
> 此处输出代码运行结果
上页
下页