2019-05-29
Python装饰器
是一个闭包,把一个函数当做参数,返回一个替代版的函数,本质上就是一个返回函数的函数
比较简单的装饰器:
def func1(): print("lilin is a good man") def outer(func): def inner(): print("***********") func() return inner #f是函数func1的加强版本 f=outer(func1) f()
比较复杂的装饰器:
def say(age): print("lilin is %d years old"%(age)) say(-10) #装饰器 def outer(func): def inner(age): if age<0: age=0 func(age) return inner #say=outer(say) say(-10)
注意:@outer相当于say=outer(say)
通用装饰器:
def outer(func): def inner(*args,**kwargs): #添加修改的功能 func(*args,**kwarrgs) return inner @outer def say(name.age): print("%s,%d",%(name),%(age))
#调用这个方法 say(name,age)