zoukankan      html  css  js  c++  java
  • @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

      

  • 相关阅读:
    [APM] OneAPM 云监控部署与试用体验
    Elastic Stack 安装
    xBIM 综合使用案例与 ASP.NET MVC 集成(一)
    JQuery DataTables Selected Row
    力导向图Demo
    WPF ViewModelLocator
    Syncfusion SfDataGrid 导出Excel
    HTML Table to Json
    .net core 2.0 虚拟目录下载 Android Apk 等文件
    在BootStrap的modal中使用Select2
  • 原文地址:https://www.cnblogs.com/taysem/p/12156375.html
Copyright © 2011-2022 走看看