Załóżmy, że mam przydatną funkcję lub klasę (lub cokolwiek) w języku Python, useful_thingktó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_thingjest zdefiniowany w foo.py. Druga strategia polega na stworzeniu pakietu:
- setup.py
- README.rst
- ...etc...
- foo
|-module.py
|-__init__.py
gdzie useful_thingjest zdefiniowany w module.py. W pudełku __init__.pywyglą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 :)