Biến lớp so với Biến phiên bản
Tất cả các biến bên ngoài hàm __init__ lớp trong Python là các biến lớp trong khi các biến bên trong cùng là các biến thể hiện. Sự khác biệt giữa các biến lớp và biến phiên bản được hiểu rõ hơn bằng cách kiểm tra đoạn mã dưới đây
Ví dụ
class MyClass: stat_elem = 456 def __init__(self): self.object_elem = 789 c1 = MyClass() c2 = MyClass() # Initial values of both elements >>> print c1.stat_elem, c1.object_elem 456 789 >>> print c2.stat_elem, c2.object_elem 456 789 # Let's try changing the static element MyClass.static_elem = 888 >>> print c1.stat_elem, c1.object_elem 888 789 >>> print c2.stat_elem, c2.object_elem 888 789 # Now, let's try changing the object element c1.object_elem = 777 >>> print c1.stat_elem, c1.object_elem 888 777 >>> print c2.stat_elem, c2.object_elem 888 789