简单理解装饰器在Python里面的作用


  例子里面说明太少,很难自己去理解,我查阅和别人讨论了一下,大概思路如下:

  首先呢,运行将Account类实例化对象为acc.然后将acc实例的属性amount修改为20,这时候就调用了最下面那个amount方法,这个方法首先检查输入的数是否为负值,如果为负值则打印"sorry",然后打印"dollar"这句,打印的同时,调用获取属性amout,这时@property装饰器下的amount函数就会返回类的amount属性,后面的print("CNY")同理。

1,装饰器的作用应该是在原来的方法上加上额外的功能.比如你调用amount这个类方法,你需要用acc.amout().但是加上@property这个装饰器以后,你就可以用acc.amount来获得相应的属性了

2 ,输入-100 是因为类中包含了检测,如果是负数,则返回默认值20,实际上装饰器改写了你原本定义的方法.比如类中定义的amount方法

3,一个是在获取属性时调用,一个是在修改属性时调用.这也是两个装饰器property和amout.setter的区别,Python里面估计默认property是获取属性时调用,setter是修改属性时调用


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM