Thuộc tính lớp Python so với __init__

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

Chủ Đề