The getattr()
function retrieves the value of an attribute from an object, even if the attribute name is stored as a string. It’s useful for dynamic programming, working with user-defined objects, and handling attributes flexibly.
Example
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
print(getattr(p, "name"))
# Output: Alice
This fetches the attribute value dynamically without using p.name
.
Syntax
getattr(object, attribute_name, default_value)
- object → The object to retrieve the attribute from.
- attribute_name → The name of the attribute (as a string).
- default_value (optional) → A value to return if the attribute doesn’t exist.
1. Handling Missing Attributes with a Default Value
Avoid errors by providing a default value.
print(getattr(p, "city", "Unknown"))
# Output: Unknown
This prevents attribute errors when an attribute is missing.
2. Using getattr()
to Access Methods
You can use getattr()
to call a method dynamically.
class MathOps:
def add(self, a, b):
return a + b
m = MathOps()
method = getattr(m, "add")
print(method(5, 3))
# Output: 8
This is helpful when you don’t know the method name in advance.
3. Using getattr()
with User Input
When handling dynamic attributes, getattr()
simplifies access.
attr_name = input("Enter attribute name: ") # Example: name
print(getattr(p, attr_name, "Not Found"))
Useful in interactive applications where users specify attributes.
4. Checking for Attribute Existence Before Accessing
Combine getattr()
with hasattr()
to check if an attribute exists.
if hasattr(p, "age"):
print(getattr(p, "age"))
This prevents errors from missing attributes.
Key Notes
- ✔ Access attributes dynamically without using
.
notation. - ✔ Avoid errors by using a default value if the attribute is missing.
- ✔ Retrieve methods and call them dynamically.
- ✔ Works great in dynamic and user-driven applications.
By using getattr()
, you can access object attributes flexibly, making it a powerful tool for dynamic programming and object handling. 🚀