Python setattr() Method
The setattr()
function assigns the specified value
argument to the specified attribute name
(existing or new) of the specified object. This is the counterpart of getattr() method.
The setattr()
method is equivalent to object.attribute = value
.
Syntax:
setattr(object, name, value)
parameters:
- object: The object whose attribute needs to be set.
- name: The name of attribute as string.
- value: The value to be set.
Return Value:
None.
The following example sets values for various attributes of an object.
class student:
firstName = 'James'
lastName = 'Bond'
std = student()
print('First Name: ', std.firstName)
print('Last Name: ', std.lastName)
setattr(std,'firstName','Bill')
setattr(std,'lastName','Gates')
print('After setting attributes')
print('First Name: ', std.firstName)
print('Last Name: ', std.lastName)
First Name: James
Last Name: Bond
After setting attributes
First Name: Bill
Last Name: Gates
If the specified attribute does not exist in the class, the setattr()
creates a new attribute to an object or class and assigns the specified value to it. The following assigns a new attribute to the class itself.
class student:
firstName = 'James'
lastName = 'Bond'
setattr(student, 'age', 25)
print('After setting attributes')
print('student.age = ', student.age)
s = student()
print('s.age = ', s.age)
student.age = 25
s.age = 25
Note that this new attribute can only be attached to the specified object. The new attribute will not be available to new objects. Use the hasattr method before setting attribute value to avoid error.
Use the .
operator instead of the setattr()
method to assign the value.
class student:
firstName = 'James'
lastName = 'Bond'
student.age = 25 # creates a new attribute
s1 = student()
print('s1.age = ', s1.age)
s1.firstName = 'Steve' # assigns value to existing attribute
s1.lastName = 'Jobs' # assigns value to existing attribute
s2 = student()
print('s2.age = ', s2.age)
s1.age = 25
s2.age = 25