python @property,setter,deleter

在创建对象的时候,有时候我们不想让别人修改对象的属性。可以用这个方法。

property直接声明变量属性,可以理解为声明一个只读对属性

setter声明对象可以修改

deleter删除属性

#python3环境
class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        # print('see you!')
        del self._x

#注意调用
c = C()                #实例化对象
c._x = 30            #改变_x属性的值,因为有@x.setter,所以可以使用
print(c._x)           #30
del c._x               #删除
# print(c._x)         #AttributeError: 'C' object has no attribute '_x'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天端午,清闲无事,骑行石塘竹海。 早七点半,从雨花台公园东门出发, 经共青团路、花神大道后,沿将军大道一路骑行。...
    谦云上的飞鸟阅读 428评论 0 1
  • 很久没写文字,虽说本人不是挥笔如有神的大师级别,但是所写也能满足自己内心的需要。 ...
    流年清浅阅读 248评论 0 1
  • 进入十一月,内心却复苏了一角。 你看路旁那一垛垛的枯草,你能想像一个月前它们的样子吗? 因为上课,几乎每天都抄近路...
    单人火锅阅读 258评论 0 0
  • 听说孩子在学校数学本子要用日子格的,正好今天休息,就带着孩子到超市去买,孩子听到非常的高兴,听说这种格式的不好买,...
    郝鸿涛妈妈阅读 145评论 0 1