面向对象之property

property功能

  1. 以调用数据属性的方式(不用加括号)调用方法
  2. 方法定义成数据属性(方法本应该是动词)

 

# 定义property之前
class People:
    def __init__(self,name,age,height,weight):
        self.name=name
        self.age=age
        self.height=height
        self.weight=weight
    def bmi(self):
        return self.weight /(self.height*self.height)

whq=People('whq',20,1.65,65)
whq.height=1.82
print(whq.bmi())

# 定义property之后
class People:
    def __init__(self,name,age,height,weight):
        self.name=name
        self.age=age
        self.height=height
        self.weight=weight
    @property
    def bmi(self):
        return self.weight /(self.height*self.height)

whq=People('whq',20,1.65,65)
whq.height=1.82
print(whq.bmi)#此处不用加括号调用

 

posted @ 2018-02-22 11:03  强仔必胜  阅读(223)  评论(0)    收藏  举报