Name

__setattr__

Synopsis

__setattr__(self, name, value)

At every request to bind attribute x.y (typically, an assignment statement x.y = value), Python calls x .__setattr__('y',value ). Python always calls __setattr__ for any attribute binding on x; a major difference from __getattr__ (__setattr__ is closer to new-style classes’ __getattribute__ in this sense). To avoid recursion, when x .__setattr__ binds x’s attributes, it must modify x .__dict__ directly (e.g., by x .__dict__[ name ]= value), or better, for a new-style class, delegate (e.g., call super(C, x).__setattr__('y',value )). Python ignores the return value of __setattr__. If __setattr__ is absent, Python usually translates x.y = z into x .__dict__['y']= z.

Get Python in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.