The vars() is a built-in function in Python that returns the dictionary representation (__dict__) for a module, a class, an instance, or any other object.

Python vars Function:

An object such as modules and instances have  __dict__ attribute that can be updated, while other objects have to write restrictions. However, if an object doesn’t have a dict attribute then it will raise a TypeError exception.

Method signature

The signature for the vars() function is as shown below. An object is optional.

vars(object)

Method parameters and return type

  • This function has one optional parameter object. Here, an object can be a module, a class, an instance, or any other object that supports __dict__ attribute.
  • However, it returns the __dict__ attribute for a module, a class, an instance, or any other object.

Python Built-in Function vars Examples:

Example 1:  For this example, let us demonstrate the working of the vars function with a class and an instance.

#Defining class
class Student:
    def __init__(self, n, a):
        self.name=n
        self.age=a
#Creating instance
s=Student("John",21)
#Using vars and Printing
print(vars(s))

Output

{'name': 'John', 'age': 21}

Example 2: In this case, we will demonstrate the use of vars without parameters. Hence it acts as the locals() function.

#Defining Class
class Student:
    def __init__(self, n, a):
        self.name=n
        self.age=a
		#Using vars()
        print(vars())
s=Student("John",21)

Output

{'self': <__main__.Student object at 0x7f53e2f92ee0>, 'n': 'John', 'a': 21}

Example 3: For this example, we will take a string and a list as a parameter. Just because, both of them don’t have a dict attribute, it will raise an exception.

#Initializing
s="Python"
l=[1,2,3,4]
#using vars and printing
print("string",vars(s),"list",vars(l))

Output

Traceback (most recent call last):
  File "main.py", line 3, in 
    print("string",vars(s),"list",vars(l))
TypeError: vars() argument must have __dict__ attribute

Conclusion

The vars() function returns the dict attribute of an object passed as a parameter. However, if the parameter object doesn’t have a dict attribute, it will raise an exception.

References

Happy Learning 🙂