Introduction to Python getattr
Python getattr is used to get an object attribute value, and if no attribute of that object is identified, the default value is returned. The getattr function takes two parameters, the name of the object and the name of the member data. This particular attribute works the same as we do use dot character. For ex: Name. We only need to pass the name of the object and the name of that particular object variable, and it will return the value of that particular object variable.
getattr(object, member_data[, default_parameter])
The third parameter in the getattr method is optional, but it is good to add the third parameter to prevent hard traceback error in python. If the member data-name passed in the getattr doesn’t exist, then python will return an error; to prevent this error, we pass the third parameter.
Examples of Python getattr
Following are the different examples of python getattr.
class Car: name = "Audi A3"; Price = "13500" print(getattr(Car,'name'))
Explanation: In the above example, we have created a class Car and added two attribute names and prices with their values. Now we will get the values of the attribute without creating an object using the getattr method. We will pass the class name as the first parameter and the attribute name as the second parameter, and it returns the attribute value of the class. In this example, we are not using any third parameter, as it is optional. The second parameter i.e. is the attribute name, should be a string.
class Car: name = "Audi A3"; Price = "13500" print(getattr(Car,'namee'))
Explanation: In this example, we are trying to pass the attribute name of member data that doesn’t exist in the class, and now python will return the error, as their no such attribute in this car.
class Car: name = "Audi A3"; Price = "13500" print(getattr(Car,'namee',0))
Explanation: In this example, we have defined the third parameter 0 to prevent any kind of error. Now we are passing the attribute name that doesn’t exist, but this time we get the default value instead of the error.
class Car: name = "Audi A3"; Price = "13500" print(Car.name)
Explanation: In the above example, we are using the same problem, but this time, we access the attribute value using the class object using a dot character. It is also returning the same result, but in case if the attribute name doesn’t exist, there is no way to prevent the error, to prevent such an error, we make use of the getattr method and pass any default value.
class Car: name = "Audi A3"; Price = "13500" @staticmethod def Truck(): return "This is new truck" print(getattr(Car,'Truck')())
Explanation: In the above example, we are using a function inside our car class. We can also execute our function Truck using the getattr function. We need to pass the class name and function name in single quotes and then round the bracket in the last. Round bracket lets you know the getattr function to search for function instead of attribute.
Python getattr method is a very useful feature when we have a class and too many attributes, and we are not sure about attribute name. If we go by the normal method using dot character, then there are many chances of getting an error if the attribute name is not found, so we use the getattr function to overcome that error by a default value.