Supponiamo di avere una funzione o classe python utile (o qualsiasi altra cosa) chiamata useful_thing
che esiste in un singolo file. Esistono essenzialmente due modi per organizzare l'albero dei sorgenti. Il primo modo utilizza un singolo modulo:
- setup.py
- README.rst
- ...etc...
- foo.py
dove useful_thing
è definita in foo.py
. La seconda strategia è creare un pacchetto:
- setup.py
- README.rst
- ...etc...
- foo
|-module.py
|-__init__.py
dove useful_thing
è definita in module.py
. Nel caso del pacchetto __init__.py
sarà simile a questo
from foo.module import useful_thing
così che in entrambi i casi puoi fare from foo import useful_thing
.
Domanda: quale modo è preferito e perché?
EDIT: Dato che l'utente gnat dice che questa domanda è mal formata, aggiungerò che il tutorial ufficiale sul packaging di Python non sembra commentare quale dei metodi descritti sopra è il preferito. Sono esplicitamente non a fornire il mio elenco personale di pro e contro perché sono interessato a sapere se esiste un metodo preferito dalla community, non a generare una discussione sui pro / contro:)