Python, namespace vs modulo con underscore

1

Sto sviluppando un progetto che utilizza diversi moduli indipendenti, ma tutti relativi allo stesso progetto.

Tuttavia, sono di fronte a questa scelta: i nomi dei moduli con underscore vs. namespaces.

Per esempio c'è questo albero:

Foo
 |-Bar1
 |  |-Bar2
 |-Foo1
 |  |-Foo2
 |  |-Foo3

Diciamo per esempio che Foo3 dipende da Bar2, ma Foo2 e Bar2 sono indipendenti.

Quali sono le migliori pratiche in materia di prestazioni e facilità di pacchettizzazione (a pypi) e leggibilità del codice:

utilizzando _ : Foo_Bar_Bar1 , Foo_Foo1_Foo2 e Foo_Foo1_Foo3

o utilizzando gli spazi dei nomi: Foo.Bar.Bar1 , Foo.Foo1.Foo2 e Foo.Foo1.Foo3

È più bello usare modulo e spazio dei nomi, ma su pip, i pacchetti indipendenti vengono salvati in posizioni diverse. Ho anche letto che c'è un bug quando si combina il pacchetto installato da pypi e il pacchetto modificabile che utilizza lo stesso spazio dei nomi

vedi anche: link

Inoltre, un altro problema dello spazio dei nomi è che Foo non può avere alcun contenuto e non può essere un pacchetto (un modulo dello spazio dei nomi deve contenere solo una dichiarazione dello spazio dei nomi) come letto qui: link (O non ho capito)

    
posta hl037_ 20.03.2015 - 16:19
fonte

1 risposta

3

Non sarei interessato alle prestazioni qui, ma a usabilità .

I moduli vengono caricati una sola volta nella vita del programma Python. Gli elementi di riferimento all'interno di moduli e pacchetti, inclusi i moduli annidati, sono praticamente gratuiti. Le prestazioni non contano qui .

Utilizza i moduli per raggruppare il tuo progetto in unità logiche; è più leggibile e mantenibile se le cose strettamente correlate concettualmente sono raggruppate in uno spazio dei nomi.

    
risposta data 20.03.2015 - 16:20
fonte

Leggi altre domande sui tag