当前位置:
首页 > 博客 > Python > 装饰器

装饰器

装饰器:向现有函数,对象添加新功能。

1.写一个装饰器,原函数没参数

def foo(func):
    def inner():
        print('添加新功能')
        res = func() # 执行原函数
        return res # 返回原函数结果
    return inner # 返回新功能结果

@foo
def test():
    print('我是原函数')
test()

2.带参数的装饰器

def foo(func):
    def inner(name):
        print('添加新功能')
        res = func(name) # 执行原函数
        return res # 返回原函数结果
    return inner # 返回新功能结果

@foo
def test(name):
    print('我是原函数{}'.format(name))

test('xiao na')

3.多个装饰器

def foo1(func):
    def inner(*args):
        print('添加新功能1')
        res = func(*args) # 执行原函数
        return res # 返回原函数结果
    return inner # 返回新功能结果

def foo2(func):
    def inner(*args):
        print('添加新功能2')
        res = func(*args) # 执行原函数
        return res # 返回原函数结果
    return inner # 返回新功能结果

@foo1
@foo2
def test(name, age=12):
    print('我是原函数{},今年{}岁'.format(name, age))

test('xiao na')

 

 

(。・`ω´・)美工(每天爱工作)