为什么调用__dict__这里没有square这个新创的属性呢?
class Rectangle:def __init__(self,width=0,height=0):
self.width = width
self.height = height
def __setattr__(self,name,value):
if name == 'square':
self.width = value
self.height = value
else:
super().__setattr__(name,value)
def getArea(self):
return self.width * self.height
r1 = Rectangle(4,5)
r1.getArea()
r1.square = 10
r1.__dict__ 因为 __setattr__ 里指定了当设置的属性名为 'square' 时,设置自身 width 和 height 属性,并不会设置自身的 square 属性
页:
[1]