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óaself. - 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ượngsam. - 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