def dec(fun):
def wrap():
print('before running')
fun()
print('after running')
return wrap
@dec
def hello():
print('decorator running')
hello()
以上代码中,dec是一个装饰器,接受hello函数作为参数,返回一个新的函数wrap,通过使用dec装饰器,可以在不修改hello函数的情况下添加新的功能。
wrap和原始函数应具有相同的参数类型和数量。
使用装饰器的一些好处:
1、可以避免代码的重复,核心函数的功能可以复用,在此基础上,多个函数可以添加新的功能。
2、封装隐藏了接口,这里只能使用hello()进行调用。