python程序设计——面向对象程序设计:属性

python 3.x 的属性

可以将属性设置为 可读,可修改,可删除

# 只读属性,不允许修改和删除
class Test:
    def __init__(self,value):
        self.__value=value
        
    @property
    def value(self):    # 只读属性,不允许修改和删除
        return self.__value

t=Test(3)
t.value

out:
3

t.value=5          # 出错,只读属性,不允许修改、删除

t.v = 5    # 动态增加新成员
t.v

out:
5

del t.v    # 动态删除新成员


# 把属性设置为可读、可修改,不允许删除
class Test:
    def __init__(self,value):
        self.__value=value
        
    def __get(self):
        return self.__value
    
    def __set(self,v):
        self.__value=v
        
    value=property(__get,__set)   # 把属性设置为可读、可修改,不允许删除
    def show(self):
        print(self.__value)

t=Test(3)
t.value=5  # 允许修改属性值
t.value

out:
5

# 把属性设置为可读、可修改,可删除
class Test:
    def __init__(self,value):
        self.__value=value
        
    def __get(self):
        return self.__value
    
    def __set(self,v):
        self.__value=v
    
    def __del(self):
        del self.__value
        
    value=property(__get,__set,__del)  # 把属性设置为可读、可修改,可删除
    def show(self):
        print(self.__value)

t=Test(3)
t.value

out:
3

del t.value   # 删除属性值

 

posted @ 2018-04-26 20:44  飞鸟先森  阅读(290)  评论(0编辑  收藏  举报