简单理解装饰器在Python里面的作用
Posted 时代的稻草人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单理解装饰器在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是修改属性时调用
以上是关于简单理解装饰器在Python里面的作用的主要内容,如果未能解决你的问题,请参考以下文章