坚持是一件说起来容易,做起来不容易的事情。

31. Property()函数32. gettattr()函数
class property([fget[, fset[, fdel[, doc]]]])解析:
fget:获取属性值的函数
fset:设置属性值的函数。
fdel:删除属性值函数。
doc:属性描述信息。
返回值:返回新式类属性。
案例:
class C(object):def_init_(self):self._x= Nonedef getx(self):return self._xdef setx(self, value):self._x= valuedef delx(self):del self.xx=property(getx,setx,delx,"I'm the 'x'property.")
如果c是C的实例化,c.x将触发getter,c.x=value将触发setter,delc.x触发deleter。
如果给定doc参数,其将成为这个属性值的docstring,否则property函数就会复制fget函数的docstring(如果有的话)。
将property函数用作装饰器可以很方便地创建只读属性:
class Parrot(object):def_init_.(self):self._voltage = 100000@propertydef voltage(self):"""Get the current voltage."""return self._voltage
上面的代码将 volage()方法转化成同名只读属性的getler方法。
property的getter、setter和deleter方法同样可以用作装饰器:
class C(object):def_init_(self):self._x = None@propertydef x(self):""" |'m the 'x' property."""return self._x@x.setterdef x(self, value):self._x = value@x.deleterdef x(self):del self._x
32.getattr()函数
作用:getattr()函数用于返回一个对象属性值。
语法:
getattr(object, name[, default])解析:
object:代表一个对象。
name:字符串。
deamlt:默认返回值,如果不提供该参数,在没有对应属性时,将触发AttributeError。
案例:
>>>class A(object):··· bar = 1···>>>a=A()>>>getattr(a,'bar') #获取属性bar值1>>>getattr(a,'bar2’) #属性bar2 不存在,触发异常Traceback (most recent call last):File "<stdin>", line 1, in <module>AttributeError:'A'object has no attribute'bar2'>>>getautr(a,'bar2',3) #属性bar2不存在,但设置了默认值3>>>
(从基础背景开始学起,坚持,是一件不容易的事情。)

文章推荐
“大脑”再重要,也需要“生命”,质量管理便是项目管理的“命”!
文 | Lisa Notes
Lisa Notes |一个Lisa’s notes:生活、工作、学习中那些事儿,感悟自我成长,随心随笔杂谈。微信搜索「Lisa Notes」(ID:Lisa-notes),查看更多信息,原创小说,PPT干货分享。

长按♥一键关注
特别声明
本文为自媒体、作者等在微信公众号上传并发布,仅代表作者观点,不代表微信公众号的观点或立场,微信公众号仅提供信息发布平台,最终解释权归本人所有。合作请联系13698281600@163.com。
全世界只有不到0.03%的人
关注小SA
你真是个特别的人
快戳我!快戳我!快戳我!㊋㊋㊋