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__)
原文地址:https://www.cnblogs.com/msj513/p/9844241.html
时间: 2024-11-06 03:38:15