面向对象:property、setter、deleter

property:是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值

    一个静态属性property本质就是实现了get,set,delete三种方法

例:在不改变对象调用属性名的方式(obj.name)下,实现了被封装属性在类外部的查看、修改、删除

class Person:
    def __init__(self,name,money):
        self.__name = name
        self.__money = money
    @property #查看
    def name(self):
        return self.__name
    @name.setter #修改
    def name(self,new_name):
        self.__name = new_name
        return self.__name
    @name.deleter #删除
    def name(self):
        del self.name
aike = Person('aike',1000)
print(aike.name)
aike.name = '艾克'
print(aike.name)
# del aike.name 

注意:

setter可以不仅能够重新赋值,还能计算。deleter能够设置接参,但在外部语法上无法实现传入,所以只能进行删除操作
posted @ 2019-09-06 15:18  aikell  阅读(149)  评论(0编辑  收藏  举报