属性---@property将方法伪装成属性
作者:互联网
计算人的BMI指数:体重除以身高的平方
class Person:
def __init__(self, name, hight, weight):
self.name = name
self.__hight = hight
self.__weight = weight
def bmi(self):
return "%s 的 bmi 值%s" % (self.name, self.__weight / self.__hight ** 2)
p1 = Person("大阳哥", 1.68, 70)
print(p1.bmi())
# 大阳哥 的 bmi 值24.801587301587304
有个小问题,虽然代码上没有问题,但是在用语,认知上,有冲突。BMI是一个名词,调用的方法,是执行的一个动作
属性:
在一个函数的上面加一个@property,执行的时候就不需要加()了
属性:将一个方法伪装成一个属性,在代码的级别上没有本质的提升,但是让其看起来更合理
class Person:
def __init__(self, name, hight, weight):
self.name = name
self.__hight = hight
self.__weight = weight
@property # 在一个函数的上面加一个@property,执行的时候就不需要加()了
def bmi(self):
return "%s 的 b
标签:.__,name,weight,self,bmi,hight,---,property,属性 来源: https://blog.51cto.com/u_14303514/2930415