Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách đúng định nghĩa class variable trong Python

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.