python __getattr__ __setattr__

class Rectangle:
    def __init__(self):
        self.width = 0
        self.height = 0

    def __setattr__(self, key, value):
        if  key == 'size':
            self.width, self.height = value
        else:
            self.__dict__[key] = value

    def __getattr__(self, item):
        if item == 'size':
            return self.width, self.height
        else:
            return self.__dict__[item]

tR = Rectangle()
tR.__setattr__('size',(1,3))
print(tR.__getattr__('size'))

resule:

(1, 3)

 

Guess you like

Origin www.cnblogs.com/lianghong881018/p/11082314.html