OK Tôi có 2 lớp học thực sự lớn> 1k dòng mỗi lớp mà tôi hiện đã chia thành nhiều lớp. Sau đó, họ được tái kết hợp bằng cách sử dụng nhiều thừa kế. Bây giờ tôi tự hỏi, nếu có bất kỳ cách làm sạch hơn/tốt hơn để làm điều này. Hoàn toàn bao thanh toán chúng ra sẽ dẫn đến số lượng vô tận của các cuộc gọi self.otherself.do_something
, mà tôi không nghĩ là cách nó nên được thực hiện.Thiết kế lớp học Python - Chia lớp lớn thành nhiều lớp thành các chức năng nhóm
Để làm cho mọi việc rõ ràng đây là những gì nó hiện trông giống như:
from gui_events import GUIEvents # event handlers
from gui_helpers import GUIHelpers # helper methods that don't directly modify the GUI
# GUI.py
class GUI(gtk.Window, GUIEvents, GUIHelpers):
# general stuff here stuff here
Một vấn đề đó là kết quả của việc này là pylint phàn nàn cho tôi hàng nghìn tỷ "init không được gọi là"/"thuộc tính không xác định"/"thuộc tính truy cập trước khi định nghĩa "cảnh báo.
CHỈNH SỬA:
Bạn có thể muốn xem mã, để tạo cho mình một bức tranh về toàn bộ thực tế.
http://github.com/BonsaiDen/Atarashii/tree/next/atarashii/usr/share/pyshared/atarashii/
Xin lưu ý, tôi thực sự cố gắng để giữ điều này càng tốt, tôi đang sử dụng thông tin để phát hiện trùng lặp mã, điều duy nhất nó phàn nàn là nhập.
Đã xảy ra sự cố. Câu hỏi cho biết "> 1k dòng mỗi". Mã thực tế trong kho lưu trữ là 356 dòng. Vui lòng sửa câu hỏi hoặc liên kết. –
Bạn cần tổng hợp: http://github.com/BonsaiDen/Atarashii/blob/next/atarashii/usr/share/pyshared/atarashii/gui.py http://github.com/BonsaiDen/Atarashii/blob/ tiếp theo/atarashii/usr/share/pyshared/atarashii/gui_events.py và http://github.com/BonsaiDen/Atarashii/blob/next/atarashii/usr/share/pyshared/atarashii/gui_helpers.py vì tôi đã chia công cụ lên (hiện tại chỉ có 968 dòng, bởi vì gần đây tôi đã chuyển một số công cụ sang các tệp khác). Ngoài ra, hãy xem các tệp * chế độ xem có cùng các dòng 1,1k. –