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
    请按任意键继续. . .
  • 相关阅读:
    教大家如何在word 2007中同时打出对齐上下标以及字母头上有波浪线(非编辑器)
    C#返回多个参数 ref及out
    回溯法解决0-1背包问题
    USB peripherals can turn against their users
    50元制作PS2键盘无线监控装置
    物联网安全拔“牙”实战——低功耗蓝牙(BLE)初探
    Bluetooth Low Energy 嗅探
    MagSpoof:能预测并窃取你下一张信用卡号码的廉价设备
    Python 安全类目推荐 (持续更新)
    树莓派安装kali后的简单配置
  • 原文地址:https://www.cnblogs.com/shunguo/p/15706383.html
Copyright © 2011-2022 走看看