The Wayback Machine - https://web.archive.org/web/20240108213534/https://www.geeksforgeeks.org/class-instance-attributes-python/
Open In App
Related Articles

Class and Instance Attributes in Python

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Class attributes

Class attributes belong to the class itself they will be shared by all the instances. Such attributes are defined in the class body parts usually at the top, for legibility.




# Write Python code here
class sampleclass:
    count = 0     # class attribute
  
    def increase(self):
        sampleclass.count += 1
  
# Calling increase() on an object
s1 = sampleclass()
s1.increase()        
print(s1.count)
  
# Calling increase on one more
# object
s2 = sampleclass()
s2.increase()
print(s2.count)
  
print(sampleclass.count)


Output:

1              
2                           
2

Instance Attributes

Unlike class attributes, instance attributes are not shared by objects. Every object has its own copy of the instance attribute (In case of class attributes all object refer to single copy).

To list the attributes of an instance/object, we have two functions:-
1. vars()– This function displays the attribute of an instance in the form of an dictionary.
2. dir()– This function displays more attributes than vars function,as it is not limited to instance. It displays the class attributes as well. It also displays the attributes of its ancestor classes.




# Python program to demonstrate
# instance attributes.
class emp:
    def __init__(self):
        self.name = 'xyz'
        self.salary = 4000
  
    def show(self):
        print(self.name)
        print(self.salary)
  
e1 = emp()
print("Dictionary form :", vars(e1))
print(dir(e1))


Output :

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']

If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


Don't miss your chance to ride the wave of the data revolution! Every industry is scaling new heights by tapping into the power of data. Sharpen your skills, become a part of the hottest trend in the 21st century.
Dive into the future of technology - explore the Complete Machine Learning and Data Science Program by GeeksforGeeks and stay ahead of the curve.

Commit to GfG's Three-90 Challenge! Purchase a course, complete 90% in 90 days, and save 90% cost click here to explore.
Last Updated : 20 Apr, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads
Complete Tutorials