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('你输入的年龄的类型有误,请重新输入数字')
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__)