2.4.3 装饰器

本节目标:

  • 了解装饰器

Learning By Reading 难度:★★★ 重要性:★★★★★

  • 阅读材料,了解装饰器。

简单来说,

@deco
def func(x):
    pass

等价于

def func(x):
    pass

func = deco(func)

同样,

@deco
class Clazz(object):
    pass

等价于

class Clazz(object):
    pass

Clazz = deco(Clazz)

尝试,

def deco(func):

    def _func(*args, **kwargs):
        return func(*args, **kwargs)
    return _func

@deco
def func():
    pass

print(func.__name__) # 结果:'_func'

我们会发现,func = deco(func)之后,func__name__等信息变了。

理解一下~与同组的讨论一下为什么。

材料中已经提到了比较实用的例子,我们在下一节也会提到其他一些具体的例子。

Learning By Reading 难度:★★ 重要性:★★★★

  • 阅读材料,了解warps

Last updated