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) # 方法1
self.__dict__[name] = value # 方法2,此两法相同
def getArea(self):
return self.width * self.height
结果
>>> r1 = Rectangle(4,5)
>>> r1.square = 10
>>> r1.height
10
>>> r1.width
10
>>> r1.getArea()
100
>>> r1.__dict__
{'width': 10, 'height': 10}