• @property方法使用


    Python中访问对象的属性可以这么做:实例名.变量名

    可以使用@property装饰器将方法伪装  成  属性的样式使用

    @property 下方的函数只能是self参数 ,不能有其他的参数

    property 常和私有属性相结合使用

    from math import pi
    
    class Yuan:
        def __init__(self,r):
            self.r = r
        @property
        def ares(self):#只能是self一个参数
            return self.r**2*pi
    
        def perimeter(self):
            return self.r*2*pi
    
    C1 = Yuan(3)
    # print(C1.ares())#没加@property 用这样的方式调用,需要添加括号
    print(C1.ares)

    1.setter  修改

    修改@property 下的属性值  借助  函数名称.setter 修改

    class Persion:
        def __init__(self,name):
            self.__name = name 
        @property
        def name(self):
            return self.__name +'sb'
    
        @name.setter#传一个参数
        def name(self,new_name):
            self.__name = new_name
    
    a1 = Persion('jinijin')
    print(a1.name)
    a1.name = '大家'#修改属性值,    如果不适用@name.setter 则不能修改
    print(a1.name)
    

    2.deleter 删除    通过删除property属性来删除私有属性

    class Persion:
        def __init__(self,name):
            self.__name = name 
        @property
        def name(self):
            return self.__name +'sb'
    
        @name.setter#传一个参数
        def name(self,new_name):
            self.__name = new_name
        @name.deleter
        def name(self):
            del self.__name
    a1 = Persion('jinijin')
    print(a1.name)
    a1.name = '大家'#修改属性值,    如果不适用@name.setter 则不能修改
    print(a1.name)
    del a1.name
    print(a1.name)
    

     已经找不到这个属性了  删除okay

      

  • 相关阅读:
    搞懂树状数组
    C#接口(Interface)
    C#接口(Interface)
    C#运算符的重载
    C#和C++的区别(一)
    hdu1874 畅通工程续
    hdu1874 畅通工程续
    C#多态性
    C#多态性
    C#继承
  • 原文地址:https://www.cnblogs.com/taysem/p/12156375.html
Copyright © 2020-2023  润新知