Instance vs Class Variables in Python

count lives on the class. id lives on each object. Change count once, every instance sees it.

BeginnerObject-Oriented ProgramsExample 2 of 25
instance-vs-class-variables.py
Run in browser
1# Program to demonstrate instance vs class variables
2
3class Counter:
4 count = 0 # class variable
5
6 def __init__(self):
7 Counter.count += 1
8 self.id = Counter.count # instance variable
9
10c1 = Counter()
11c2 = Counter()
12
13print("c1.id:", c1.id)
14print("c2.id:", c2.id)
15print("Total objects created:", Counter.count)

Output

c1.id: 1
c2.id: 2
Total objects created: 2

What's going on

The class variable 'count' is shared across all instances, while 'id' is unique per instance.