Class variables là các biến được khai báo trong phạm vi của lớp và có thể được truy cập từ tất cả các đối tượng của lớp đó. Các biến này có thể được chia sẻ và sửa đổi giá trị bởi tất cả các đối tượng của lớp đó.
Dưới đây là 3 ví dụ về class variables:
– Đếm số lượng đối tượng được tạo ra từ lớp:
class Employee:
count = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.count += 1
def display_count(self):
print("Total employees:", Employee.count)
emp1 = Employee("Alice", 50000)
emp2 = Employee("Bob", 60000)
emp1.display_count() # Total employees: 2
Trong ví dụ này, biến count
được khai báo trong lớp Employee
để đếm số lượng đối tượng được tạo ra từ lớp đó.
– Lưu thông tin chung cho tất cả các đối tượng của lớp:
class Car:
wheels = 4
color = "black"
def __init__(self, make, model):
self.make = make
self.model = model
car1 = Car("Toyota", "Corolla")
car2 = Car("Honda", "Accord")
print(car1.wheels, car1.color) # 4 black
print(car2.wheels, car2.color) # 4 black
Trong ví dụ này, biến wheels
và color
được khai báo trong lớp Car
để lưu thông tin chung cho tất cả các đối tượng của lớp.
– Định nghĩa một hằng số:
class Circle:
pi = 3.14
def __init__(self, radius):
self.radius = radius
def area(self):
return Circle.pi * (self.radius ** 2)
circle1 = Circle(5)
print(circle1.area()) # 78.5
Trong ví dụ này, biến pi
được khai báo trong lớp Circle
như một hằng số để tính diện tích của hình tròn.
– Bạn có thể truy cập vào class variables từ bên ngoài class bằng cách sử dụng tên của class và tên của biến. Ví dụ:
class MyClass:
class_variable = "Hello, world!"
print(MyClass.class_variable) # output: "Hello, world!"
Tuy nhiên, nếu bạn cố gắng thay đổi giá trị của class variable từ bên ngoài class, bạn sẽ nhận được lỗi “AttributeError: can’t set attribute”. Để thay đổi class variable, bạn cần truy cập nó từ bên trong class.
– Một ví dụ về việc sử dụng class variables để quản lý hệ thống trong môi trường Linux là khi bạn cần lấy thông tin về các tập tin trong thư mục cụ thể. Trong trường hợp này, bạn có thể tạo một lớp Python để đại diện cho thư mục và sử dụng các biến lớp để lưu trữ thông tin về tập tin trong thư mục đó.
Ví dụ, chúng ta có thể tạo một lớp Folder
để đại diện cho một thư mục, và sử dụng biến lớp files
để lưu trữ thông tin về các tập tin trong thư mục đó:
import os
class Folder:
files = []
def __init__(self, path):
self.path = path
self.get_files()
def get_files(self):
self.files = os.listdir(self.path)
folder = Folder('/home/user/Documents')
print(folder.files)
Trong ví dụ này, biến lớp files
được sử dụng để lưu trữ thông tin về các tập tin trong thư mục. Khi khởi tạo một đối tượng Folder
, phương thức get_files
được gọi để lấy danh sách tập tin trong thư mục và gán cho biến lớp files
. Cuối cùng, danh sách các tập tin được in ra bằng cách gọi biến files
của đối tượng Folder
.