Załóżmy, że mam przydatną funkcję lub klasę (lub cokolwiek) w języku Python, useful_thing
która istnieje w jednym pliku. Istnieją dwa podstawowe sposoby organizacji drzewa źródłowego. Pierwszy sposób wykorzystuje pojedynczy moduł:
- setup.py
- README.rst
- ...etc...
- foo.py
gdzie useful_thing
jest zdefiniowany w foo.py
. Druga strategia polega na stworzeniu pakietu:
- setup.py
- README.rst
- ...etc...
- foo
|-module.py
|-__init__.py
gdzie useful_thing
jest zdefiniowany w module.py
. W pudełku __init__.py
wyglądałoby to tak
from foo.module import useful_thing
więc w obu przypadkach możesz to zrobić from foo import useful_thing
.
Pytanie: Który sposób jest preferowany i dlaczego?
EDYCJA: Ponieważ użytkownik gnat mówi, że to pytanie jest źle sformułowane, dodam, że oficjalny samouczek dotyczący pakowania w Pythonie nie wydaje się komentować, która z metod opisanych powyżej jest preferowana. Wyraźnie nie podam mojej osobistej listy zalet i wad, ponieważ interesuje mnie, czy istnieje metoda preferowana przez społeczność, a nie generowanie dyskusji na temat zalet i wad :)