Friday, December 27, 2024
Google search engine
HomeLanguagesvars() function in Python

vars() function in Python

This is an inbuilt function in Python. The vars() method takes only one parameter and that too is optional. It takes an object as a parameter which may be can a module, a class, an instance, or any object having __dict__ attribute. 

vars() Function in Python Syntax 

vars(object)

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’s dictionary is only useful for reads since updates to the local’s dictionary are ignored. 

Example:

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




# Python program to illustrate
# working of vars() method in Python
 
class Geeks:
def __init__(self, name1 = "Arun", num2 = 46, name3 = "Rishab"):
    self.name1 = name1
    self.num2 = num2
    self.name3 = name3
 
Lazyroar = Geeks()
print(vars(Lazyroar))


Output : 

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

Python vars() without any Arguments

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




# Python program to illustrating
# the use of vars() and locals
# when no argument is passed and
# how vars() act as locals().
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())


Output:

{'ans': 21, 'self': Geeks() is returned}
{'ans': 10, 'self': Geeks() is returned}
{'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 Lazyroar'))
print(vars(123.45))


Output :

TypeError: vars() argument must have __dict__ attribute

RELATED ARTICLES

Most Popular

Recent Comments