码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-05-12 03:13:27      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:类实例化   函数   区别   运行   bubuko   style   src   inf   获取   

技术分享图片

技术分享图片

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

  首先呢,运行将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里面的作用

标签:类实例化   函数   区别   运行   bubuko   style   src   inf   获取   

原文地址:https://www.cnblogs.com/LifeIsHardIUsePyhon/p/9027131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!