zoukankan      html  css  js  c++  java
  • property特性

    一、什么是特性property

      将函数属性伪装成数据属性。

       将原本访问的函数: .函数名()伪装成 .函数名

       伪装前

    class People:
    
        def __init__(self, name, weight, height):
            self.name = name
            self.weight = weight
            self.height = height
    
        def bmi(self):
            return self.weight / self.height
    
    obj = People('link', 80, 1.8)
    print(obj.bmi())

        伪装后:

     

       @property
        def bmi(self):
            return self.weight / self.height
    obj = People('link', 80, 1.8)
    print(obj.bmi)

        只要property伪装过的属性都会有setter,getter,deleter函数

       伪装可改为:

       

    class People:
        def __init__(self, name):
            self.__name = name
    
        @property
        def name(self):
            return self.__name
    
        @name.setter
        def name(self, name):
            self.__name = name
    
        @name.deleter
        def del_name(self):
            del self.__name

      这样做的好处,可以针对属性进行管理和约束。还可以另外一种写法:定义好get,set,del函数。

     

    class People:
        def __init__(self, name):
            self.__name = name
    
        def get_name(self):
            return self.__name
    
        def set_name(self, name):
            self.__name = name
    
        def del_name(self):
            del self.__name
    
        name = property(get_name, set_name, del_name)
  • 相关阅读:
    内核态内存映射
    FS 数据结构
    内存页分配/释放
    用户态内存映射
    WindowsServer 2008 TIME_WAIT
    OutOfMemoryError:修改tomcat启动参数
    windows下Tomcat添加jmx监控
    mysql 5.7.11 安装运行
    mysql 数据库备份与还原
    Win7下虚拟WiFi设置
  • 原文地址:https://www.cnblogs.com/linbin7/p/11126088.html
Copyright © 2011-2022 走看看