Giả sử tôi có một hàm hoặc lớp python hữu ích (hoặc bất cứ thứ gì) được gọi là useful_thing
tồn tại trong một tệp duy nhất. Có hai cách cần thiết để tổ chức cây nguồn. Cách đầu tiên sử dụng một mô-đun duy nhất:
- setup.py
- README.rst
- ...etc...
- foo.py
nơi useful_thing
được định nghĩa trong foo.py
. Chiến lược thứ hai là tạo ra một gói:
- setup.py
- README.rst
- ...etc...
- foo
|-module.py
|-__init__.py
nơi useful_thing
được định nghĩa trong module.py
. Trong trường hợp gói __init__.py
sẽ như thế này
from foo.module import useful_thing
để trong cả hai trường hợp bạn có thể làm from foo import useful_thing
.
Câu hỏi: Cách nào được ưa thích, và tại sao?
EDIT: Vì người dùng gnat nói rằng câu hỏi này được hình thành kém, tôi sẽ thêm rằng hướng dẫn đóng gói python chính thức dường như không bình luận về phương pháp nào được mô tả ở trên là phương pháp được ưa thích. Tôi rõ ràng không đưa ra danh sách ưu và nhược điểm cá nhân vì tôi quan tâm đến việc liệu có phương pháp ưa thích nào của cộng đồng không, không tạo ra cuộc thảo luận về ưu / nhược điểm :)