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
    请按任意键继续. . .
  • 相关阅读:
    web前端防治重复提交
    layabox笔记
    fixfff
    laybax
    小游戏初始化,资源加载异常处理,黑屏处理
    微信小游戏资源加载页与云存储
    前端唠嗑
    css 的一些样式笔记
    小游戏虚拟手柄
    VUE最佳实践
  • 原文地址:https://www.cnblogs.com/shunguo/p/15706383.html
Copyright © 2011-2022 走看看