因此property()返回值是一个新式类属性,这个新式类属性能被这个类内部的方法识别。在fdel中不能删除size,因为在删除这个新式类属性时,还将触发类内部方法中的fdel函数,会造成一直循环删除自己
__author__ = '荣耀燃尽 世界尽头'
class Rectangle:
def __init__(self):
self.width=0
self.height=0
def setSize(self,s):
self.width,self.height=s
def getSize(self):
return self.width,self.height
def fdel(self):
print(self.size)
del self.width,self.height
print("--***-------")
size=property(getSize,setSize,fdel)
rt=Rectangle()
print(rt)
rt.size=10,5
print(rt.size)
print(type(rt.size))
#rt.showsize()
del rt.size