Làm thế nào xấu để xác định lại một phương thức lớp học từ một mô-đun bên thứ ba khác, bằng Python?Làm cách nào để ghi đè phương thức từ mô-đun của bên thứ ba?
Thực tế, người dùng có thể tạo ma trận NumPy có chứa numbers with uncertainty; lý tưởng, tôi muốn mã của họ để chạy không sửa đổi (so với khi mã thao tác ma trận nổi); đặc biệt, nó sẽ là tuyệt vời nếu nghịch đảo của ma trận m
vẫn có thể thu được với m.I
, mặc dù thực tế là m.I
phải được tính bằng mã của riêng tôi (phương thức I
ban đầu không hoạt động, nói chung).
Làm thế nào xấu để xác định lại numpy.matrix.I? Đối với một điều, nó làm giả mạo với mã của bên thứ ba, mà tôi không thích, vì nó có thể không được mạnh mẽ (nếu các module khác làm như vậy? ...). Một vấn đề khác là numpy.matrix.I mới là một trình bao bọc có liên quan đến một chi phí nhỏ khi bản gốc numpy.matrix.I thực sự có thể được áp dụng để thu được ma trận nghịch đảo.
Đang phân lớp các ma trận NumPy và chỉ thay đổi phương thức I
của chúng tôi tốt hơn? điều này sẽ buộc người dùng cập nhật mã của họ và tạo ma trận các số không chắc chắn với m = matrix_with_uncert(…)
(thay vì giữ sử dụng numpy.matrix(…)
, đối với ma trận nổi), nhưng có lẽ đây là một sự bất tiện cần được chấp nhận vì lợi ích của sự vững mạnh? Ma trận nghịch đảo vẫn có thể được thực hiện với m.I
, tốt ... Mặt khác, sẽ rất tuyệt nếu người dùng có thể xây dựng tất cả ma trận của họ (nổi hoặc số không chắc chắn) với trực tiếp numpy.matrix()
mà không phải bận tâm kiểm tra các kiểu dữ liệu .
Mọi nhận xét hoặc phương pháp tiếp cận bổ sung sẽ được hoan nghênh!
Cảm ơn bạn đã mô tả rõ ràng về việc vá khỉ và các vấn đề tiềm tàng của nó! Tôi phải nói NumPy khuyến khích định nghĩa của "mảng của một cái gì đó" bằng cách hỗ trợ chúng ('numpy.array ([any_object])'). Vì vậy, tôi sẽ nói rằng "ma trận của bất kỳ loại đối tượng" là một khái niệm được hỗ trợ rất nhiều bởi bổ sung NumPy – element-wise được hỗ trợ tự động vv. Điều đó nói rằng, tôi hoàn toàn đăng ký phần còn lại của câu trả lời của bạn! – EOL