Ada yang namanya instance variable dan class variable. Seperti pada artikel-artikel sebelumnya, self.nama merupakan instance variable. Variabel ini dimiliki oleh objek. Jadi ketika membuat objek bernama kucing, maka objek kucing memiliki variabel nama. Berbeda dengan class variable dimana variabel ini secara statis menempel pada class. Jadi ada atau tidak objek yang dibuat, maka variabel ini tetap ada. Biasanya class variable juga disebut dengan static variable.
class Hewan:
# class variable
jumlah = 0
def __init__(self, inputNama, inputWarna, inputKaki):
# Instance Variable
self.nama = inputNama
self.warna = inputWarna
self.kaki = inputKaki
Hewan.jumlah += 1
print("Membuat hewan dengan nama " + inputNama)
kucing = Hewan("catty", "putih", 4)
print(Hewan.jumlah)
kambing = Hewan("wedus", "coklat", 4)
print(Hewan.jumlah)
Pada contoh di atas, class variable-nya adalah jumlah. Dicontohkan, nilai awal variabel jumlah adalah 0. Kemudian ketika ada objek yang dibuat, maka variabel jumlah akan ditambahkan 1. Variabel jumlah menemple pada class Hewan.