The setattr()
function sets the value of the attribute of an object.
Example
class Student:
marks = 88
name = 'Sheeran'
person = Student()
# set value of name to Adam
setattr(person, 'name', 'Adam')
print(person.name)
# set value of marks to 78
setattr(person, 'marks', 78)
print(person.marks)
# Output: Adam
# 78
setattr() Syntax
The syntax of the setattr()
function is:
setattr(object, name, value)
If you want to get the attribute of an object, use getattr().
setattr() Parameters
The setattr()
function takes three parameters:
- object - object whose attribute has to be set
- name - attribute name
- value - value given to the attribute
setattr() Return Value
The setattr()
method returns None
.
Example 1: How setattr() works in Python?
class Person:
name = 'Adam'
p = Person()
print('Before modification:', p.name)
# setting name to 'John'
setattr(p, 'name', 'John')
print('After modification:', p.name)
Output
Before modification: Adam After modification: John
Example 2: When the attribute is not found in setattr()
If the attribute is not found, setattr()
creates a new attribute an assigns value to it. However, this is only possible if the object implements the __dict__()
method.
You can check all the attributes of an object by using the dir() function.
class Person:
name = 'Adam'
p = Person()
# setting attribute name to John
setattr(p, 'name', 'John')
print('Name is:', p.name)
# setting an attribute not present in Person
setattr(p, 'age', 23)
print('Age is:', p.age)
Output
Name is: John Age is: 23