14.python 装饰器

定义

装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。


def add_txt(func):
    print('我是新功能')
    func()

def foo():
    print('this is foo')

add_txt(foo)

@语法糖

def add_txt(func):
    def wrapper():
        print('我是新功能')
        return func()
    return wrapper


@add_txt
def foo():
    print('this is foo')

foo()

带参数的装饰器

def add_txt(func):
    def wrapper(*args,**kwargs):
        print('我是新功能')
        return func(*args,**kwargs)
    return wrapper


@add_txt
def foo(name,age):
    print('my name is %s, age is %s'%(name,age))

foo('white',18)