class P: def __init__(self,name,age): self.name=name if type(age) is int: self.__age=age else: print('你输入的年龄的类型有误,请重新输入数字') @property def age(self): return self.__age#本类中可以访问私有属性 @age.setter def age(self,a1): if type(a1) is int: self.__age=a1 else: print('你输入的年龄的类型有误,请重新输入数字') @age.deleter#删除属性 def age(self): print('ttt') p1=P('卢卡',25) #p1.age() print(p1.age) #bmi伪装成属性后可以改值吗?答:可以 在类中 先写@方法名.setter 在写修改的方法(@property下的方法名和@方法名.setter和@方法名.setter下的方法名 3个一样) #p1.age=30#age是伪装的属性 不是真正属性,不能在类的外部改 #现在已经写了@age.setter可以在类的外部修改age p1.age=30 print(p1.age) #print(p1.__dict__) del p1.age#删除属性