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

Thuộc tính Class và Instance trong Python


Một lớp (class) là bản thiết kế (blueprint) để tạo ra các đối tượng khác nhau. Khi các đối tượng được tạo ra từ lớp, chúng không còn phụ thuộc vào thuộc tính của lớp. Ngoài ra, lớp không có quyền kiểm soát các thuộc tính của các instance được tạo ra.

Trong ví dụ dưới đây, chúng ta thấy MainClass có một thuộc tính lớp (class attribute) và các đối tượng được tạo từ lớp chính có các giá trị thuộc tính riêng của chúng. Việc in các giá trị này cho chúng ta sự rõ ràng. Cuối cùng, lớp không thể truy cập các giá trị của thuộc tính instance.

Ví dụ

class MainClass(object):
    class_attr = 'Sun'
    def __init__(self, instance_attr):
        self.instance_attr = instance_attr
if __name__ == '__main__':
    obj1 = MainClass('Mon')
    obj2 = MainClass('Tue')
    # in thuộc tính instance
    print(obj1.instance_attr)
    print(obj2.instance_attr)
    # in thuộc tính lớp dùng MainClass
    print(MainClass.class_attr)
    # in thuộc tính lớp dùng objects
    print(obj1.class_attr)
    print(obj2.class_attr)
    # in instance attribute như class property sẽ lỗi
    # print(MainClass.instance_attr)

Kết quả

Chạy mã trên cho kết quả sau:

Mon
Tue
Sun
Sun
Sun