• 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
    请按任意键继续. . .
  • 相关阅读:
    python os.path
    ant的基本说明
    gcc的基本使用方法
    java逻辑运算符小节
    awk 简单教程
    推荐:恢复Ext3下被删除的文件
    python读取excel
    ant的简明教程,后面运行写的不错
    WinForm中快捷键与组合按键的设置
    InstallShield 2010集成.net Framework 4的安装包制作
  • 原文地址:https://www.cnblogs.com/shunguo/p/15706383.html
Copyright © 2020-2023  润新知