Home / Questions / What is the purpose of the __dict__ attribute in Python?
Explanatory Question

What is the purpose of the __dict__ attribute in Python?

👁 240 Views
📘 Detailed Answer
🕒 Easy to Read
Read the answer carefully and go through the related questions on the right side to improve your understanding of this topic.

Answer with Explanation

In Python, the __dict__ attribute is a special attribute that contains the namespace of an object. It is a dictionary-like object that maps attribute names to their corresponding values.

Whenever you create a new instance of a class, Python creates a new namespace to store the instance's attributes. The __dict__ attribute provides a way to access this namespace directly, and to manipulate the attributes of an instance dynamically.

Here's an example to illustrate the use of __dict__:


class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Alice", 30)

# Accessing the namespace with __dict__
print(p.__dict__)   # {'name': 'Alice', 'age': 30}

# Adding a new attribute dynamically
p.city = "New York"
print(p.__dict__)   # {'name': 'Alice', 'age': 30, 'city': 'New York'}

# Removing an attribute dynamically
del p.age
print(p.__dict__)   # {'name': 'Alice', 'city': 'New York'}

In this example, we define a Person class with two attributes (name and age). When we create a new instance of the class (p), Python creates a new namespace to store the instance's attributes. We can access this namespace directly using the __dict__ attribute, and we can manipulate the attributes dynamically by adding or removing items from the dictionary.

In summary, the __dict__ attribute in Python is a special attribute that contains the namespace of an object. It provides a way to access and manipulate an object's attributes dynamically, which can be useful in a variety of situations.