Python很早就引入了装饰器——在PEP-318中,作为一种简化函数和方法定义方式的机制,这些函数和方法在初始定义之后必须进行修改。 这样做的最初动机之一是,使用classmethod和staticme
Python很早就引入了装饰器——在PEP-318中,作为一种简化函数和方法定义方式的机制,这些函数和方法在初始定义之后必须进行修改。
这样做的最初动机之一是,使用classmethod和staticmethod等函数来转换方法的原始定义,但是它们需要额外的一行代码来修改函数的初始定义。
一般来说,每次必须对函数应用转换时,我们必须使用modifier函数调用它,然后将它重新分配到函数初始定义时的名称中。
例如,假设有一个叫作original的函数,在它上面有一个改变original行为的函数(叫作modifier),那么我们必须这样写:
def original(...): ... original = modifier(original)
(