risposta

12

Inserire un file vuoto __init__.py nella directory Modelli.

Quindi, nella tua app; presumibilmente un livello superiore, si fa riferimento a moduli nella directory di modelli come questo:

import Models 

e fare qualcosa con esso in questo modo:

Models.my_model.MyClassName 

È inoltre possibile utilizzare la parola chiave from in questo modo:

from Models import my_model 

e riferimento in questo modo:

my_model.MyClassName 

Se avete solo bisogno di un metodo da un modulo, si potrebbe anche fare questo:

from Models.my_model import my_method_name 
my_method_name() 

collegamento obbligatorio al documentation.

+3

Ho votato, con il cavet che il modulo e il nome del pacchetto devono essere in minuscolo. e che le directory con i file ____init____.py sono pacchetti e non moduli. –

+0

il problema con la divisione di classi in file diversi in Python è che devo aggiungere il prefisso del modulo ovunque io lo usi. Questo è ingombrante e non succede in C# –

+0

@Jader: puoi evitare di doverlo fare importando le classi specifiche che hai bisogno esplicitamente con 'dal modulo import ClassName'. – bernie

4

In risposta al tuo commento alla risposta di Adam, per quanto riguarda l'avere 10 importazioni per 10 classi, in primo luogo non dimenticare che non è necessario avere una classe per modulo in Python. I moduli dovrebbero essere organizzati in base alla funzionalità, quindi è possibile raggruppare le classi correlate in un singolo file se questo ha senso.

Se ancora voleva fare tutte le classi importabili in un colpo solo, tutti loro si potrebbe importare nel file __init__.py stesso utilizzando la sintassi from submodule import Class, poi basta importare il modulo che contiene - import mainmodule e si riferiscono al mainmodule.Class1 ecc, o anche utilizzare from mainmodule import Class1, Class2, Class3 per importare le classi direttamente nel tuo spazio dei nomi e fare riferimento direttamente a loro.

Problemi correlati