In this article, we will discuss how to get a dictionary from object's field i.e. how to get the class members in the form of a dictionary. There are two approaches to solve the above problem:
- By using the __dict__ attribute on an object of a class and attaining the dictionary. All objects in Python have an attribute __dict__, which is a dictionary object containing all attributes defined for that object itself. The mapping of attributes with its values is done to generate a dictionary.
- By calling the in-built vars method, which is used to return __dict__ attribute of a module, class, class instance, or an object.
#Method 1: To generate a dictionary from an arbitrary object using __dict__attribute:
# class Animals is declared
class Animals:
# constructor
def __init__(self):
# keys are initialized with
# their respective values
self.lion = 'carnivore'
self.dog = 'omnivore'
self.giraffe = 'herbivore'
def printit(self):
print("Dictionary from the object fields\
belonging to the class Animals:")
# object animal of class Animals
animal = Animals()
# calling printit method
animal.printit()
# calling attribute __dict__ on animal
# object and printing it
print(animal.__dict__)
Output:
Dictionary from the object fields belonging to the class Animals: {'lion': 'carnivore', 'dog': 'omnivore', 'giraffe': 'herbivore'}
#Method 2: To generate a dictionary from an arbitrary object using an in-built vars method:
# class A is declared
class A:
# constructor
def __init__(self):
# keys are initialized with
# their respective values
self.A = 1
self.B = 2
self.C = 3
self.D = 4
# object obj of class A
obj = A()
# calling vars method on obj object
print(vars(obj))
Output:
{'A': 1, 'B': 2, 'C': 3, 'D': 4}