property
1.什么是property?
是一个python内置的装饰器,可以装饰在“类内部的方法”上。
可以将该方法调用方式有----->对象.方法()----->对象.方法
2.为什么用property?
ps:在某些场景下,调用的方法知识用来获取计算后的某种值。
ps:必须通过 对象.方法()方式调用,让该方法看起来像动词
目的是为了迷惑调用者,调用的方法误以为是属性
3.如何用?
# 需求: 计算人体 bmi 指数 # 体重 / 身高的平方 # value = weight / (height * height) class User: def __init__(self, name, weight, height): self.__name = name self.weight = weight self.height = height # 获取bmi指数方法 @property def bmi(self): # return self.weight / (self.height * self.height) return self.weight / (self.height ** 2) @property def name(self): return self.__name # 了解: 设置被property装饰后的方法 # 注意: 需要修改的方法名字要与被property装饰器后的方法一样 @name.setter def name(self, value): # '赵shuai兵' --- 》 value self.__name = value @name.deleter def name(self): # 删除属性 del self.__name user_obj = User('HCY', 100, 1.9) user_obj.bmi()() print(user_obj.bmi()) # user_obj.bmi() print(user_obj.bmi) # 报错 # user_obj.bmi() = 29 # user_obj.bmi = 29 # print(user_obj.name()) # print(user_obj.name) # 修改属性 # user_obj.name = 'zhaoshuaibing' # # print(user_obj.name) # 删除属性 # del user_obj.name # print(user_obj.name)