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:
Python3
# 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:
Python3
# 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}