Khởi tạo VPS trong 60 giây · Hoàn tiền trong 7 ngày · Hỗ trợ kỹ thuật 24/7
Bitech Bitech
Hướng dẫn

Phân Biệt Class Variable và Instance Variable Trong Python 3

Hướng dẫn chi tiết cách phân biệt và sử dụng Class Variable và Instance Variable trong Python 3 giúp bạn viết mã nguồn hướng đối tượng (OOP) tối ưu hơn.

Trong lập trình hướng đối tượng (OOP) với Python 3, việc hiểu rõ sự khác biệt giữa Class Variable (biến lớp) và Instance Variable (biến thể hiện) là yếu tố cốt lõi giúp bạn quản lý dữ liệu và trạng thái đối tượng một cách hiệu quả.

1. Class Variable (Biến Lớp)

Class Variable là biến được chia sẻ chung bởi tất cả các đối tượng (instance) được tạo ra từ lớp đó. Giá trị của Class Variable nằm ở cấp độ lớp và giống nhau cho mọi instance.

Đặc điểm:

  • Được khai báo bên trong lớp nhưng nằm ngoài tất cả các phương thức (method).
  • Dùng để lưu trữ dữ liệu đại diện cho toàn bộ lớp (ví dụ: hằng số, bộ đếm số lượng instance).

Ví dụ:

class Shark:
    animal_type = "Fish"  # Class Variable

    def __init__(self, name):
        self.name = name

sam = Shark("Sam")
stevie = Shark("Stevie")

print(sam.animal_type)    # Output: Fish
print(stevie.animal_type) # Output: Fish

2. Instance Variable (Biến Thể Hiện)

Instance Variable là biến sở hữu riêng của từng đối tượng cụ thể. Mỗi instance giữ một bản sao độc lập của biến này, nghĩa là thay đổi Instance Variable ở đối tượng này sẽ không ảnh hưởng đến đối tượng khác.

Đặc điểm:

  • Được khai báo bên trong các phương thức (thường là phương thức khởi tạo __init__) và gán thông qua từ khóa self.
  • Mang giá trị riêng biệt cho từng đối tượng.

Ví dụ:

class Shark:
    def __init__(self, name, age):
        self.name = name  # Instance Variable
        self.age = age    # Instance Variable

sam = Shark("Sam", 5)
stevie = Shark("Stevie", 8)

print(sam.name, sam.age)       # Output: Sam 5
print(stevie.name, stevie.age) # Output: Stevie 8

3. Bảng so sánh Class Variable và Instance Variable

Tiêu chí Class Variable Instance Variable
Phạm vi (Scope) Chia sẻ chung cho tất cả instance của lớp. Chỉ thuộc về instance cụ thể.
Vị trí khai báo Trực tiếp trong body của lớp, ngoài method. Bên trong method (sử dụng self.variable).
Mục đích sử dụng Lưu trữ dữ liệu dùng chung hoặc thuộc tính cố định. Lưu trữ trạng thái và thuộc tính riêng lẻ của đối tượng.
Cách thay đổi Thay đổi qua ClassName.variable để áp dụng toàn bộ. Thay đổi qua instance.variable chỉ tác động đến đối tượng đó.

4. Những lưu ý quan trọng khi sử dụng

  • Tránh nhầm lẫn khi gán giá trị: Nếu bạn cố gắng thay đổi Class Variable qua một instance (ví dụ: sam.animal_type = "Mammal"), Python sẽ không sửa Class Variable chung mà sẽ tự động tạo một Instance Variable mới trùng tên cho riêng đối tượng sam.
  • Cập nhật đúng cách: Để cập nhật Class Variable cho toàn bộ các đối tượng, bạn nên thao tác trực tiếp trên tên lớp: Shark.animal_type = "Marine Animal".

Nắm vững cách phân biệt hai loại biến này sẽ giúp bạn tối ưu dung lượng bộ nhớ và xây dựng cấu trúc code Python rõ ràng, ít lỗi hơn.


Ngày phát hành: 12/06/2026
Nguồn: www.digitalocean.com