Why to use __setattr__ in python?

后端 未结 7 1216
隐瞒了意图╮
隐瞒了意图╮ 2020-12-16 11:12

I don\'t know for why using __setattr__ instead simple referencing like x.a=1.

I understand this example:

class Rectangle:         


        
7条回答
  •  一生所求
    2020-12-16 11:36

    You don't call it yourself. Period. If you need to use a string because you don't know the name beforehand (very bad idea in 99% of all cases where one might think they need this, nearly always a dict or list is a better/saner choice), you use the built-in setattr function.

    However, it is called for you - when you do a.x = ..., that's done as a.__setattr__('x', ...) (this is propably an oversimplification). And some objects overload it to allow some trickery, e.g. to emulate immutability. See the documentation of "special methods".

提交回复
热议问题