Menu
CoddyTech

Decorator phương thức lớp

Thuộc phần Lập trình hướng đối tượng trong hành trình Python của Coddy. Bài học 12 trên 64.

Decorator @classmethod tạo ra các phương thức nhận chính lớp đó làm tham số đầu tiên (cls) thay vì một đối tượng (self).

Đây là ví dụ về một lớp có các phương thức lớp:

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

Gọi phương thức (method) của lớp (class) bằng tên lớp:

info = Student.get_school_info()
print(info)

Tạo một vài học sinh:

alice = Student("Alice")
bob = Student("Bob")

updated_info = Student.get_school_info()
print(updated_info)

Dùng phương thức của lớp làm hàm khởi tạo thay thế:

guest = Student.create_guest_student()
print(guest.name)
print(Student.get_school_info())

Đầu ra:

School: Python Academy, Students: 0
School: Python Academy, Students: 2
Guest
School: Python Academy, Students: 3

Bạn cũng có thể gọi phương thức của lớp từ các đối tượng:

alice = Student("Alice")
info_from_instance = alice.get_school_info()
print(info_from_instance)

Đầu ra:

School: Python Academy, Students: 1

Điểm chính: Dùng @classmethod khi bạn cần truy cập các thuộc tính của lớp hoặc tạo cách khác để khởi tạo đối tượng. Tham số đầu tiên là cls (chính lớp đó), không phải self.

Tự làm thử

Bài học này không có thử thách code.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Python online