属性是对字段的二次封装。
好处:1)可以控制字段的值(可读可写)
2)可以对赋值进行有效性的判断。
属性在做的提前需要把字段配置成私有的字段。
class Calculator: __pi=3.1425926 #类变量 def __init__(self): #对radius不初始化,默认0 self.__radius=0 #实例变量 私有变量 #求圆的周长 @property def perimeter(self): return 2*Calculator.__pi*self.radius #求圆的面积 @property def area(self): return Calculator.__pi*self.radius*self.radius @classmethod def get_pi(cls): return cls.__pi #通过属性获取半径的值。 @property def radius(self): if self.__radius==0: return "还没有为半径赋值" else: return self.__radius #赋值给半径 @radius.setter # def radius(self,value): if not isinstance(value,int): raise ValueError('score must be an integer!') if value<0 or value>100: raise ValueError('score must be between 0 to 10!') else: self.__radius=value if __name__=="__main__": this=Calculator() print(this.radius) this.radius=109 #@设置成10 print(this.radius) print("周长:",this.perimeter) print("面积:",this.area)