python--面向对象高级用法
1. @装饰器 用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能。 有多个装饰器执行的顺序是从最后一个装饰器开始,执行到第一个,再执行函数本身 def dec1(func): print("1111") def one(): print("2222") func() print("3333") return one def dec2(func): print("aaaa") def two(): print("bbbb") func() print("cccc") return two @dec1 @dec2 def test(): print("test test") test() 结果: 2. @property 与getter setter 描述符 描述符就是一个“绑定行为的对象属性”,在描述符协议中,它可以通过方法充写属性的访问。这些方法有 get (), set (), delete ().如果这些方法中任何一个被定义在一个对象中,这个对象就是一个描述符。 注意,只有在新式类中描述符才会起作用(新式类继承type或者object class) lazyproperty利用是属性访问的查找顺序 例如c.area->c.__dict__['area'] -> type