Python getattr() Function Tutorial
In this tutorial we will be discussing about Python getattr() function.
Python getattr() Function
Python getattr() function is used to get the value of an object’s attribute and if no attribute of that object is found, default value is returned. Basically, returning the default value is the main reason why you may need to use Python getattr() function. So, before starting the tutorial, let’s see the basic syntax of Python’s getattr() function.
getattr(object_name, attribute_name[, default_value])
Python getattr() Example
In this section, we will learn how to access attribute values of an object using getattr() function. Suppose, we are writing a class named Student. The basic attributes of Student class are student_id and student_name. Now we will create an object of the class Student and access its attribute.
class Student:
student_id=""
student_name=""
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
print('\ngetattr : name of the student is =', getattr(student, "student_name"))
print('traditional: name of the student is =', student.student_name)
So, the output will be like this:
getattr : name of the student is = Adam Lam
traditional: name of the student is = Adam Lam
Python getattr() Default Value
In this section, we will use the python getattr() default value option. If you want to access any attribute that doesn’t belong to the object, then you can use the getattr() default value option. For example, if the student_cgpa attribute is not present for the student, then will show a default value. In the following example, we will see example of default value. We will also learn what happens if the attribute is not present and we are not using the default value option.
class Student:
student_id=""
student_name=""
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
try:
print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
print("Attribute is not found :(")
So, after running the code you will get output like this:
Using default value : Cgpa of the student is = 3.0
Attribute is not found 🙁
Notice that AttributeError is raised when the default value is not provided while calling getattr() function.
Reason for Using Python getattr() Function
The main reason to use python getattr() is that we can get the value by using the name of the attribute as String. So you can manually input the attribute name in your program from console. Again, if an attribute is not found you can set some default value, which enables us to complete some of our incomplete data. Also if your Student class is work in progress, then we can use getattr() function to complete other code. Once Student class has this attribute, it will automatically pick it up and not use the default value. So, that’s all about python getattr() function.