Class variable khai báo ngoài method __init__. Là static element, thuộc về class chứ không phải instance. Được chia sẻ bởi tất cả instance.
Ví dụ
class MyClass:
__item1 = 123
__item2 = "abc"
def __init__(self):
pass # hoặc code khác
Minh họa chi tiết
class MyClass:
stat_elem = 456
def __init__(self):
self.object_elem = 789
c1 = MyClass()
c2 = MyClass()
print(c1.stat_elem, c1.object_elem) # 456 789
print(c2.stat_elem, c2.object_elem) # 456 789
MyClass.stat_elem = 888
print(c1.stat_elem, c1.object_elem) # 888 789
print(c2.stat_elem, c2.object_elem) # 888 789
c1.object_elem = 777
print(c1.stat_elem, c1.object_elem) # 888 777
print(c2.stat_elem, c2.object_elem) # 888 789
Lưu ý: Dùng ClassName.attr = value để sửa class variable. Gán instance.attr = value tạo instance variable mới che khuất class variable.