Open In App
Related Articles

vars() function in Python

Improve Article
Save Article
Like Article

vars() method takes only one parameter and that too is optional. It takes an object as a parameter which may be a module, a class, an instance, or access the __dict__ attribute in Python. In this article, we will learn more about vars() function in Python.

Python vars() Function Syntax 

Syntax: vars(object)


  • object – can be a module, class, instance, or any object having the __dict__ attribute


  • __dict__ attribute of the given object.
  • methods in the local scope when no arguments are passed
  • TypeError: if the object passed doesn’t have the __dict__ attribute

vars() Function in Python

The method returns the __dict__ attribute for a module, class, instance, or any other object if the same has a __dict__ attribute. If the object fails to match the attribute, it raises a TypeError exception. Objects such as modules and instances have an updatable __dict__ attribute however, other objects may have written restrictions on their __dict__ attributes. vars() acts like the locals() method when an empty argument is passed which implies that the local dictionary is only useful for reads since updates to the local dictionary are ignored. 

How vars() Function in Python works?

In the given code, we are creating a class Geeks and we have created three attributes. We have created an object of class Geeks() and we printed the dict with vars() function in Python.


class Geeks:
  def __init__(self, name1 = "Arun",
               num2 = 46, name3 = "Rishab"):
    self.name1 = name1
    self.num2 = num2
    self.name3 = name3
GeeksforGeeks = Geeks()


{'name1': 'Arun', 'num2': 46, 'name3': 'Rishab'}

Python vars() without any Arguments

In this example, we are using vars() without any arguments.


# vars() with no argument
print (vars())


{'__name__': '__main__', '__doc__': None, '__package__': None,

'__loader__': <class '_frozen_importlib.BuiltinImporter'>,

'__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}

Python vars() with Custom Object

In the given example, we have defined the Geeks class with methods loc(), code(), and prog(). The loc() method returns local variables using locals(), code() returns object attributes using vars(), and prog() returns class attributes using vars(self)


class Geeks(object):
    def __init__(self):
        self.num1 = 20
        self.num2 = "this is returned"
    def __repr__(self):
        return "Geeks() is returned"
    def loc(self):
        ans = 21
        return locals()
    # Works same as locals()
    def code(self):
        ans = 10
        return vars()
    def prog(self):
        ans = "this is not printed"
        return vars(self)
if __name__ == "__main__":
    obj = Geeks()
    print (obj.loc())
    print (obj.code())
    print (obj.prog())


{'self': Geeks() is returned, 'ans': 21}
{'self': Geeks() is returned, 'ans': 10}
{'num1': 20, 'num2': 'this is returned'}

Python vars() without __dict__ Attribute

In the given example, we have attributes that are not dict that’s why when we used the var() method, it shows a type error.


print(vars('Geeks for geeks'))


TypeError: vars() argument must have __dict__ attribute

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 13 Nov, 2023
Like Article
Save Article
Similar Reads
Complete Tutorials