Sự cố mọi người gặp phải với super
là vấn đề về đa kế thừa. Vì vậy, nó là một chút không công bằng để đổ lỗi cho super
. Nếu không có super
nhiều thừa kế thậm chí còn tồi tệ hơn. Michele Simionato độc đáo bọc này lên trong blog article mình trên siêu:
Mặt khác, người ta có thể tự hỏi, nếu tất cả các mụn cóc siêu không phải là gợi ý của một số vấn đề nghiêm trọng tiềm ẩn. Nó có thể cũng được rằng vấn đề không phải là với siêu, cũng không phải với phương pháp hợp tác: vấn đề có thể với nhiều kế thừa chính nó.
Vì vậy, bài học chính là bạn nên cố gắng tránh đa thừa kế.
Vì lợi ích của tính nhất quán, tôi luôn sử dụng siêu, ngay cả khi thừa kế đơn lẻ không thực sự quan trọng (ngoài lợi thế nhỏ của việc không biết tên lớp cha). Trong Python 3+ super
là thuận tiện hơn, vì vậy có một chắc chắn nên sử dụng siêu.
* "Nếu tính năng tồn tại, có lý do." * Đối số này đơn giản là không đúng sự thật. Nhiều ngôn ngữ có các tính năng không nên được sử dụng bởi bất kỳ ai. –