类中的普通方法伪装成属性 @property

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#删除属性
原文地址:https://www.cnblogs.com/long-holiday/p/9900551.html