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)
Parameters
- object – can be a module, class, instance, or any object having the
__dict__
attribute
Return
__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.
Python3
class Geeks:
def __init__( self , name1 = "Arun" ,
num2 = 46 , name3 = "Rishab" ):
self .name1 = name1
self .num2 = num2
self .name3 = name3
GeeksforGeeks = Geeks()
print ( vars (GeeksforGeeks))
|
Output
{'name1': 'Arun', 'num2': 46, 'name3': 'Rishab'}
Python vars() without any Arguments
In this example, we are using vars() without any arguments.
Output
{'__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).
Python3
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 ()
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())
|
Output
{'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.
Python3
print ( vars ( 'Geeks for geeks' ))
print ( vars ( 123.45 ))
|
Output
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