zoukankan      html  css  js  c++  java
  • python @properity的应用

    class Cell:
        #使用@property修饰方法,相当于为改属性设置getter方法
        @property
        def state(self):
            return self._state
        #为state属性设置setter方法,这样state属性就变成了读写属性
        @state.setter
        def state(self,value):
            if 'alive' in value.lower():
                self._state = 'alive'
            else:
                self._state = 'dead'
        #使用@property修饰方法is_dead,is_dead()就变成了只读属性
        @property
        def is_dead(self):
            return not self._state.lower() == "alive"
    
    c = Cell()
    c.state = 'Al'
    print(c.state)
    print(c.is_dead)
    dead
    True
    请按任意键继续. . .
    class Cell:
        #使用@property修饰方法,相当于为改属性设置getter方法
        @property
        def state(self):
            return self._state
        #为state属性设置setter方法,这样state属性就变成了读写属性
        @state.setter
        def state(self,value):
            if 'alive' in value.lower():
                self._state = 'alive'
            else:
                self._state = 'dead'
        #使用@property修饰方法is_dead,is_dead()就变成了只读属性
        @property
        def is_dead(self):
            return not self._state.lower() == "alive"
    
    c = Cell()
    c.state = 'Alive'
    print(c.state)
    print(c.is_dead)
    alive
    False
    请按任意键继续. . .

    properity()函数的使用格式如下:

    properity(fget=None, fset=None, fdel=None, doc=None)

    从上面的语法可以看出来,使用property函数的时候可以传入4个参数,但是也可以根据需要传入参数

    class Rectangle:
        def __init__(self,width,height):
            self.width = width
            self.height = height
        def setsize(self,size):
            self.width , self.height = size
        def getsize(self):
            return self.width,self.height
        def delsize(self):
            self.width, self.height = 0,0
    
        size = property(getsize,setsize,delsize,"用于描述矩形大小的属性")
    
    #访问size属性的说明文档
    print(Rectangle.size.__doc__)
    
    #通过内置的help函数来访问size属性的说明文档
    help(Rectangle.size)
    
    rect = Rectangle(3,4)
    print(rect.size)#3,4
    
    rect.size = 33,44
    print(rect.width)#3
    print(rect.height)#4
    
    del rect.size
    
    print(rect.width)#0
    print(rect.height)#0
    用于描述矩形大小的属性
    Help on property:
    
        用于描述矩形大小的属性
    
    (3, 4)
    33
    44
    0
    0
    请按任意键继续. . .
  • 相关阅读:
    Process Stats:了解你的APP怎样使用内存
    具体分析死锁产生的条件与原因
    ABAP 弹出框 函数
    mybatis--foreach,choose 小结
    Nginx 配置 Basic 认证
    spss logistic回归分析结果如何分析
    spss logistic回归分析结果如何分析
    样本方差的抽样分布 χ2(n) 卡方分布_样本方差 卡方分布
    样本方差的抽样分布 χ2(n) 卡方分布_样本方差 卡方分布
    t检验中的t值和p值是什么关系_t检验和p值的关系
  • 原文地址:https://www.cnblogs.com/shunguo/p/15706383.html
Copyright © 2011-2022 走看看