Đây là câu hỏi rất tốt nhưng không muốn như câu hỏi. Có sự khác biệt giữa phương thức 'tự' và 'cls' được sử dụng mặc dù tương tự chúng ở cùng một nơi
def moon(self, moon_name):
self.MName = moon_name
#but here cls method its use is different
@classmethod
def moon(cls, moon_name):
instance = cls()
instance.MName = moon_name
Bây giờ bạn có thể thấy cả hai đều là hàm mặt trăng nhưng người ta có thể được sử dụng bên trong lớp trong khi mặt trăng tên hàm khác có thể được sử dụng cho bất kỳ lớp nào.
Đối với phương pháp lập trình thực tế:
Trong khi thiết kế lớp vòng tròn, chúng tôi sử dụng phương thức diện tích như cls thay vì tự vì chúng tôi không muốn giới hạn diện tích chỉ trong lớp vòng tròn cụ thể.