python装饰器(概括)

python装饰器跟JAVA中的面向切片编程(AOP)的思想是一致的,有种“雁过拔毛”的味道!

 

通俗的讲,就是,如果你(被装饰对象)被我(装饰者)装饰了,那么任何执行你的地方,都得先过来我这边“拔毛”,具体怎么拔毛,要看我(装饰器)怎么定义的了,我说了算!

 

python装饰器分为以下几种:

 

1,函数装饰器:用来装饰一个函数

        函数装饰器本省又可以带参数,此参数既可以是类,又可以是普通的参数!  (但这个仍影响不了其本质:函数装饰器)

 

2,类装饰器,用来装饰一个类

 
 

在这个例子中,装饰器把类的名称重新绑定到另一个类,这个类在一个封闭的作用域中保持了最初的类,并且当调用它的时候,创建并嵌入了最初的类的一个实例。当随后从该实例获取一个属性的时候,包装器的__getattr__拦截了它,并且将其委托给最初的类的嵌入的实例。此外,每个被装饰的类都创建一个新的作用域,它记住了最初的类。


就像函数装饰器一样,类装饰器通常可以编写为一个创建并返回可调用的对象的“工厂”函数,或者使用__init__或__call__方法来拦截所有调用操作的类,或者是由此产生的一些组合。工厂函数通常在封闭的作用域引用中保持状态,类通常在属性中保持状态

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值