setattr() Set attribute
Last updated: 2026-09-22
setattr() Set attribute
setattr(obj, name, value) sets obj.name = value; equivalent to direct attribute assignment.
| Category | Built-in Functions |
|---|---|
| Kind | Built-in Function |
| Python Version | all |
📝 Syntax
setattr(object, name, value)
⚙️ Parameters
| object Required | The object whose attribute is set. |
|---|---|
| name Required | The attribute name (string). |
| value Required | The value to assign. |
Returns:None; the attribute is set in place.
💥 Raises
AttributeError— Raised when the attribute cannot be set (read-only or restricted by __slots__).
▶ Example
Edit the code, press Run, and see the result in the output panel:
Output:
100
🏷️ Related Built-in Functions
💡 Related Cases
More case studies coming soon — check back later.
❓ FAQ
QIs there a difference between setattr(obj, 'x', 100) and obj.x = 100?
AThey are functionally equivalent. setattr's advantage is that the attribute name can be a variable or a dynamically computed string, which suits reflective programming.
QWhat are the typical uses of setattr?
AConfig loading / object mapping: for k, v in config.items(): setattr(obj, k, v) turns a dict into object attributes in bulk.
QWhat happens when setattr targets a read-only attribute?
AIt raises AttributeError: can't set attribute, for example assigning to a property that only defines a getter.
QCan arbitrary attributes be set on a class that defines __slots__?
ANo — only attribute names declared in __slots__ can be set; setting any other name raises an AttributeError.