zoukankan      html  css  js  c++  java
  • 面向对象——property装饰器

    property装饰器

    property装饰器的作用,其实就是将将函数属性伪装成为属性的的装饰器

    class People:
        def __init__(self,name,weight,height):
            self.name = name
            self.weight =weight
            self.height=height
    
        @property
        def bmi(self):
            return self.weight/(self.height**2)
    
    
    msj = People('msj',82,1.84)
    print(msj.bmi)
    #24.22022684310019

    但是这这只是伪装成属性的,修改并不像属性一样能被修改

    解决方案一:

    class People:
        def __init__(self,name,weight,height):
            self.name = name
            self.__weight =weight
            self.__height=height
    
        #接口显示身高
        @property
        def height(self):
             print(self.__height)
        #接口修改身高属性
        @height.setter
        def height(self,h):
            self.__height = h
        #接口删除身高属性
        @height.deleter
        def height(self):
            del self.__height
    
    p2 = People('egon',70,182)
    p2.height
    p2.height=183
    p2.height
    del p2.height
    print(p2.__dict__)
    
    “”“
    182
    183
    {'name': 'egon', '_People__weight': 70}
    ”“”

    方案二

    class People:
        def __init__(self,name,weight,height):
            self.name = name
            self.__weight =weight
            self.__height=height
    
        #接口显示身高
    
        def tell_height(self):
             print(self.__height)
        #接口修改身高属性
    
        def set_height(self,h):
            self.__height = h
        #接口删除身高属性
    
        def del_height(self):
            del self.__height
    
        height = property(tell_height,set_height,del_height)
    
    p2 = People('egon',70,182)
    p2.height
    p2.height=183
    p2.height
    del p2.height
    print(p2.__dict__)
  • 相关阅读:
    java 实现一段文字中,出现次数最多的字
    json 字符串 <----> json 对象
    农场销售
    IDEA Tomcat配置 VM Option
    java用JSONObject生成json
    面向对象
    java读取 properties配置文件
    Jquery span标签的取值赋值
    Oracle 分析函数 over
    gitee指令集合
  • 原文地址:https://www.cnblogs.com/msj513/p/9844241.html
Copyright © 2011-2022 走看看