python装饰器

个人理解:相当于类的接口,能添加新的功能,

并且会自动运行

功能:给函数添加新功能

无参模板:

def outer(func): #func是被装饰的函数
   def inner(*args,**kwargs): #加参数的意义:被修饰的函数可能要求含参数,所以加入可变长参数
       res=func(*args,**kwargs)
       return res  #保存被修饰函数的返回值,并且返回它
   return inner   #这里是返回的是里层函数inner的地址,不加括号,加括号返回的是inner的返回值
@outer
def func1():
    print('这是func1')
func1()

多个装饰器叠加:

假如有装饰器outer1(),outer2(),outer3(),outer4()

@outer1

@outer2

@outer3

@outer4

def func2():

    print('这是func2')

相当于outer1(outer2(outer3(outer4(func2))))

先运行outer1(),然后依次执行,最先结束的是func2()然后是outer4(),然后依次执行,

 

有参模板

def big_outer(*args,**kwargs):
    def outer(func):
       def inner(*args,**kwargs): 
           res=func(*args,**kwargs)
           return res 
    return inner 
return  outer
@outer
def func1():
    print('这是func1')
func1()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值