装饰器是一种函数,它可以修改其他函数的功能。
def decorate(func):
def decorate_real(*args, **kwargs):
print('decorate begin')
func(*args, **kwargs)
print('decorate end')
return decorate_real
@decorate
def test(name, age):
print('hello', name, age)
test('123', 456)
class Decor(object):
def __call__(self, func):
def decorate_real(*args, **kwargs):
print('decorate2 begin')
func(*args, **kwargs)
print('decorate2 end')
return decorate_real
@Decor()
def test2(name, age):
print('hello2', name, age)
test2('123', 456)