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: 3Bạ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.
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
1Nền tảng về lập trình hướng đối tượng
Tệp bên ngoàiGiới thiệu về lập trình hướng đối tượngLớp và đối tượngTham số selfPhương thứcThuộc tínhPhương thức khởi tạo (__init__)Ôn tập: máy tính đơn giản4Kế thừa
Kế thừa cơ bảnHàm super()Ghi đè phương thứcKế thừa đa lớpThứ tự phân giải phương thứcÔn tập: hệ thống phân cấp nhân viên2Decorator
Giới thiệu về decoratorDecorator thuộc tínhDecorator phương thức tĩnhDecorator phương thức lớp5Tính đa hình
Xem lại cách ghi đè phương thứcKiểu gõ vịtLớp và phương thức trừu tượngThiết kế giao diệnÔn tập: máy tính hình học8Các khái niệm OOP nâng cao
Kết hợp và kế thừaMixinPhương thức tĩnh và phương thức lớpDecorator lớpTrình quản lý ngữ cảnhTự luyện tập: Trình biên dịch Python online