Thuộc tính lớp Python là một biến thuộc về một lớp, không phải một cá thể riêng lẻ và được chia sẻ giữa tất cả các cá thể. Một thuộc tính thể hiện là một biến thuộc về chính xác một đối tượng. Thuộc tính thể hiện được xác định bên trong phương thức __init__[]
bằng cách sử dụng tham chiếu đến bản thân thể hiện, trong khi thuộc tính lớp được xác định bên ngoài phương thức __init__[]
Khi bạn xem qua hướng dẫn này, vui lòng xem video giải thích của tôi
Lớp Python so với thuộc tính sơ thẩm [Giải thích đơn giản]
Xem video này trên YouTube
Hôm nay, các bạn sẽ tìm hiểu về thuật ngữ “thuộc tính” bởi vì bạn cần hiểu thuật ngữ này và các khái niệm đằng sau thuật ngữ này để có thể nắm vững các nội dung nâng cao hơn
Có hai loại thuộc tính. thuộc tính lớp và thuộc tính thể hiện
- Các thuộc tính của lớp là các biến được định nghĩa cho chính lớp đó. Các thuộc tính lớp được chia sẻ bởi tất cả các phiên bản—một thay đổi sẽ hiển thị trong tất cả các phiên bản
- Thuộc tính phiên bản là các biến được xác định riêng cho từng phiên bản. Nếu một phiên bản thay đổi biến thể hiện, các biến thể hiện khác không bị ảnh hưởng
Thuộc tính lớp
Các thuộc tính của lớp là các biến được định nghĩa cho chính lớp đó. Các thuộc tính lớp được chia sẻ bởi tất cả các phiên bản—một thay đổi sẽ hiển thị trong tất cả các phiên bản
Điều này có thể thấy trong ví dụ sau khi cả hai phiên bản ô tô p1 và p2 đều có chung thuộc tính lớp nhãn hiệu. Nếu bạn thay đổi nó cho lớp, cả hai trường hợp có thấy thay đổi không?
class Car: brand = 'porsche' # Class attribute # Create two instances p1 = Car[] p2 = Car[] # Change the class attribute Car.brand = 'tesla' # Check the value of the class attributes of both instances print[p1.brand] print[p2.brand]
Đầu ra của đoạn mã là
tesla tesla
Vì vậy, cả hai trường hợp đều thấy thuộc tính lớp đã thay đổi
Thuộc tính sơ thẩm
Thuộc tính phiên bản là các biến được xác định riêng cho từng phiên bản. Nếu một phiên bản thay đổi biến thể hiện, các biến thể hiện khác không bị ảnh hưởng
Đoạn mã sau cho bạn thấy rằng việc thay đổi thuộc tính phiên bản của một phiên bản sẽ không thay đổi thuộc tính phiên bản của phiên bản khác
class Car: def __init__[self]: self.brand = 'porsche' # Instance attribute # Create two instances p1 = Car[] p2 = Car[] # Change the instance attribute p1.brand = 'tesla' # Check the value of both instances' attributes print[p1.brand] print[p2.brand]
Do đó, đầu ra là
tesla porsche
Chúng ta hãy làm cho những khác biệt này ghi nhớ trong não của bạn bằng ba câu đố mã nhanh, phải không?
Câu đố thuộc tính lớp so với trường hợp
Hãy cùng xem một ví dụ do một trong những người đăng ký email của tôi đưa ra [tôi đã sửa đổi nó một chút cho bình đẳng giới]. Nhân tiện, hãy đăng ký danh sách của tôi để nhận bảng cheat Python, câu đố mã, bài học Python miễn phí và tham gia các cuộc thi viết mã. Đó là niềm vui lớn - bạn sẽ thấy. ??
class Partner: database = [] def __init__[self, name, age, likes_me]: self.database.append[self] self.name = name self.age = age self.likes_me = likes_me Maria = Partner["Maria", 21, False] Florian = Partner["Florian", 116, False] Eve = Partner["Eve", 22, True] Fiona = Partner["Fiona", 55, True] for partner in Partner.database: if partner.age