Điều này có thể đã được hỏi trước nhưng tôi không thể tìm thấy câu trả lời cho câu hỏi cụ thể của tôi (khá chung ...)Cách sắp xếp đúng định nghĩa lớp Python đối với tệp trợ giúp cho lớp đó?
Dưới đây là ví dụ về câu hỏi của tôi. Nói rằng gói của tôi được gọi là 'school', và tôi có một lớp được gọi là 'book' sẽ có các tệp .py cùng với nó chứa thịt của các phương thức của nó. Tôi không chắc chắn làm thế nào để tổ chức tất cả để báo cáo nhập khẩu không nhìn lạ.
Làm cách nào để sắp xếp tệp?
/school/
pencil/
book/
__init__.py
read.py
burn.py
book.py
Tôi muốn để có thể làm điều gì đó như thế này, vì nó làm cho ý nghĩa nhất:
from school import Book
b = Book(name="The Bible")
b.read()
Nhưng từ cấu trúc tập tin trên, tôi sẽ phải làm:
from school.book import Book
b = Book(....etc
HOẶC
from school import book
b = book.Book(...etc
T hese là khó xử/lặp đi lặp lại ... những gì tôi thiếu ở đây?
Cảm ơn bạn đã trả lời. Nhưng điều gì sẽ xảy ra nếu các phương thức read() và burn() của tôi là hàng trăm dòng và tôi không muốn book.py trở thành một mớ hỗn độn khổng lồ? – Ian
Mỗi phương pháp là hàng trăm dòng? Thành thật mà nói, tôi sẽ cố gắng tìm cách để tái cấu trúc nên đó là một số hàm ngắn hơn. Đó không phải lúc nào cũng có thể, rõ ràng, nhưng tôi vẫn cố gắng. Lý tưởng nhất, bạn muốn mỗi chức năng làm một việc, và chỉ một điều, và bạn muốn nó phù hợp trên một trang 'duy nhất' (có thể là một trang được in hoặc một màn hình của trình soạn thảo mà không cần cuộn). Điều đó nói rằng, ngay cả khi tôi có một số chức năng dài vài trăm dòng, tôi vẫn đặt tất cả chúng trong cùng một lớp. Nó phù hợp với mô hình đối tượng của Python tốt hơn và dễ dàng hơn để tìm mọi thứ. – Jonathanb
Sau đó, chúng có thể được chia thành các phần nhỏ hơn, để lại cho bạn toàn bộ các phương thức riêng nhỏ và các phương thức nhập công khai nhỏ đọc() và ghi() tổ chức công việc của các phương thức nhỏ hơn. Nhưng trong mọi trường hợp, tôi không đích thân thấy rằng một phương pháp phức tạp lớn là dễ hiểu hơn trong một tệp riêng biệt (cách xa mọi thứ khác mà nó đề cập đến trong lớp) hơn là trong tệp chính. – Ben