zoukankan      html  css  js  c++  java
  • python之面向对象之property

      property这个属性是一个装饰器,我们通常可以用它使我们类中的方法调用的时候不需要括号,使得一些类似name的属性可以以obj.name来调用,给用户更好的体验,话不多说,上代码

    property的基本使用

    class Room:
        def __init__(self,name,age,width,height):
            self.name = name
            self.age = age
            self.__width = width
            self.__height =height
        @property#使调用时不用括号,看起来像是属性
        def show_area(self):
            return self.__height * self.__width
    
    r1 = Room('alex','22',10,10)
    print(r1.show_area)
    
    #r如果要扩展,就可以在析构函数中加入一个高 ,在show中加入一个参数,就可以求出体积       而且没有改变调用接口
    

     

    class Name:
        def __init__(self,name):
            self.__name = name
        @property
        def name(self):
            return self.__name
    
        @name.setter
        def name(self,val):
    
            self.__name = val
    
        @name.deleter
        def name(self):
            print('无法删除')
            del self.__name
            print('删除成功!')
    
    
    m1 = Name('Marvelous')
    m1.name = '周栩强'
    print(m1.name)
    del m1.name
    

      我们的显示结果如下:

    周栩强
    无法删除
    删除成功!
    

      

  • 相关阅读:
    2019南京网络赛 D Robots 期望dp
    【ICPC2019银川站】K
    【ICPC2019南昌站】I
    【SEERC 2019】E
    电子取证知识和经验总结
    CCPC2020绵阳站游记
    【CCPC2020绵阳站】J
    【CCPC2020绵阳站】K
    【SWERC 2019-20】K Birdwatching
    【HAOI2012】容易题
  • 原文地址:https://www.cnblogs.com/swearBM/p/9752238.html
Copyright © 2011-2022 走看看