Day29.property使用part1

1.property使用part1

   @property用法,代码如下:

# 装饰器是在不修改被装饰对象源代码以及调用方式的前提下为被装饰对象添加
# 新功能的可调用对象

# property 是一个装饰器,用来将绑定给对象的方法,伪装成一个数据属性(即不需要加`()`调用)
'''
成人的BMI数值:
过轻:低于18.5
正常:18.5-23.9
过重:24-27
肥胖:28-32
非常肥胖,高于32
    体质指数(BMI)= 体重(kg) / 身高^2(m)
    EX:70KG / (1.75 * 1.75) = 22.86
'''
class People:
    def __init__(self, name, weight, height):
        self.name = name
        self.weight = weight
        self.height = height
    
    # 定义函数的原因1:
    # 1. 从bmi的公式上看,bmi应该是触发功能计算得到的
    # 2. bmi是随着身高、体重的变化而动态变化的,不是一个固定的值,每次都需要临时计算得到
    # 但是bmi听起来更像是一个数据属性,而非功能
    @property
    def bmi(self):
        return self.weight / (self.height ** 2)


obj1 = People('egon', 75, 1.74)
# print(obj1.bmi())
print('类中的函数加了@property,在调用该方法,不需要加`()`'.center(60, '-'))
print(obj1.bmi)     # 等同于obj1.bmi()

 

posted on 2024-06-20 17:54  与太阳肩并肩  阅读(3)  评论(0编辑  收藏  举报

导航