Hướng dẫn dùng python3 super python
Lý do chúng tôi sử dụng Show Nội dung chính
Nội dung chính
Nội dung chính
Trong Python 3, chúng ta có thể gọi nó như thế này:
Trong Python 2, chúng tôi được yêu cầu sử dụng nó như thế này:
Không có siêu, bạn bị hạn chế về khả năng sử dụng nhiều kế thừa:
Tôi giải thích thêm dưới đây.
Sự khác biệt chính trong mã này là bạn có được một lớp về mình trong Tôi minh họa sự khác biệt này trong một câu trả lời tại câu hỏi chính tắc, Làm thế nào để sử dụng 'siêu' trong Python? , trong đó thể hiện tiêm phụ thuộc và hợp tác nhiều thừa kế . Nếu Python không có superĐây là mã thực sự tương đương với
Viết giống một chút với Python bản địa:
Nếu chúng tôi không có Làm thế nào siêu thực hiện điều này trong Python 3 mà không được nói rõ ràng về lớp và thể hiện từ phương thức mà nó được gọi từ đâu? Nó nhận được khung ngăn xếp cuộc gọi và tìm thấy lớp (được lưu trữ ngầm định dưới dạng một biến tự do cục bộ, Vì nó yêu cầu đối số đầu tiên cho MRO, nên sử dụng Những lời phê bình về những câu trả lời khác:
Nó khá sóng và không cho chúng ta biết nhiều, nhưng quan điểm Tôi sẽ giải thích ở đây.
Và hãy tạo ra một sự phụ thuộc mà chúng ta muốn được gọi sau Đứa trẻ:
Bây giờ hãy nhớ,
Và
Nhưng
Phê bình cho một câu trả lời khácTrong mọi trường hợp, bạn không nên làm như sau, điều mà một câu trả lời khác gợi ý, vì bạn chắc chắn sẽ gặp lỗi khi bạn phân lớp ChildB:
(Câu trả lời đó không thông minh hoặc đặc biệt thú vị, nhưng bất chấp những lời chỉ trích trực tiếp trong các bình luận và hơn 17 lượt đánh giá, người trả lời vẫn kiên trì đề xuất cho đến khi một biên tập viên tốt bụng khắc phục vấn đề của mình.) Giải thích: Câu trả lời đó gợi ý gọi siêu như thế này:
Điều này là hoàn toàn sai.
546 hữu ích 5 bình luận chia sẻ |