简单理解装饰器在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里面的作用的主要内容,如果未能解决你的问题,请参考以下文章

Python 如何理解又晕又好用的装饰器

Python装饰器完全解读

理解Python装饰器

python装饰器在类中的实现

python装饰器在接口自动化测试中的应用

python闭包以及装饰器