使用类中的__setattr__控制属性索引的设置

时间:2016-07-05 19:31:00

标签: python python-3.x

如果我有:

class myclass():
    def __init__(self, x, list):
        self.x = x
        self.list = list

    def __setattr__(self, name, value):
        self.__dict__[name] = value
        #some stuff

你做了

instance = myclass(3, ['a', 'b'])
instance.x = 5
instance.list[1] = 'c'

将为第一个调用__setattr __方法而不是第二个方法,因为只设置属性的索引而不是属性

有没有办法控制当属性列表的索引被更改时发生的事情,或者以这种方式将列表作为属性是不好的做法?

1 个答案:

答案 0 :(得分:0)

以下是一个可以满足您需要的示例:

{{1}}