self._name = name @property def name(self): print('getting name') return self._name @name.setter def name(self, value): print('setting name to ', value) self._name = value @name.deleter def name(self): print('deleting name') del self._name p = Person('Alice') print(p.name)...
1、调用静态属性===>在静态属性函数前先用@property; 2、设置静态属性===>在静态属性函数前加上@静态属性函数名.setter,同时静态属性函数要加上value参数; 3、删除静态属性===>在静态属性函数前加上@静态属性函数名.deleter。 #方法一classFoo:@propertydefA(self):print('获取(get)属性时执行===')@A.set...
1、调用静态属性===>在静态属性函数前先用@property; 2、设置静态属性===>在静态属性函数前加上@静态属性函数名.setter,同时静态属性函数要加上value参数; 3、删除静态属性===>在静态属性函数前加上@静态属性函数名.deleter。 1#方法一2classFoo:3@property4defA(self):5print('获取(get)属性时执行===')...
self._value2=NonedefgetoValue(self):#这是属性value的get方法print("getting the value of property")returnself._value, self._value2defsetoValue(self, values):#这是属性value的set方法print("setting the value of property") self._value, self._value2=valuesdefdeloValue(self):#这是属性value删除方...
2.通过调用property属性对set,get方法进行了封装。然后操作私有属性 #2.通过调用property属性对set,get方法进行了封装。然后操作私有属性 class Student(object): def __init__(self, name, age): self.name = name self.__age = age #定义对私有属性的get方法,获取私有属性 ...
'获取属性值')returnself._namedefsetName(self,value):print('设置属性值')self._name=valuedefdelName(self):print('删除属性')delself._namename = property(getName,setName,delName,'属性描述信息')>>>classPTPerson(Person):pass>>>p1=PTPerson('梯阅线条')# p1.name 访问属性name时,自动调用get...
if value < -273: raise ValueError("Temperature below -273 is not possible") print("Setting value") self._temperature = value 上边的两种生成property的实现方式,都很简单,推荐使用。 property使用实例 假设有天你决定创建一个类,用来存储摄氏温度。当然这个类也需要实现一个将摄氏温度转换为华氏温度的方法。
__get__(self, obj, type=None): 用来获取属性值。 __set__(self, obj, value): 用来设置属性值。 __delete__(self, obj): 用来删除属性。 3.描述符类型 数据描述符:同时定义了__get__和__set__方法的描述符。 非数据描述符:只定义了__get__方法的描述符。
self.x2,self.y2=x2,y2def_width_get(self):returnself.x2-self.x1def_width_set(self,value):self.x2=self.x1+valuedef_height_get(self):returnself.y2-self.y1def_height_set(self,value):self.y2=self.y1+value width=property(_width_get,_width_set,doc="rectangle width measured from left...
defprice(self,value):self.original_price=value @price.deleter defprice(self):del self.original_price obj=Goods()obj.price # 获取商品价格 obj.price=200# 修改商品原价 del obj.price # 删除商品原价 总结: 经典类中的属性只有一种访问方式,对应被@property修饰的方法。