2011-09-02 9 views
72

che sto guardando oltre il codice per il modulo di Python multiprocessing, e contiene questa linea:Cosa fa a. in una dichiarazione di importazione in Python significa?

from ._multiprocessing import win32, Connection, PipeConnection 

invece di

from _multiprocessing import win32, Connection, PipeConnection 

la sottile differenza è il periodo precedente _multiprocessing. Cosa significa? Perché il periodo?

+2

Si chiama importazione relativa: http://docs.python.org/tutorial/modules.html – Aillyn

+0

Senza il '.', se si ha un file' _multiprocessing.py' per qualche motivo indecifrabile accanto al proprio script principale, "multiprocessing" si romperebbe. Con '.', assicura che ottenga il proprio modulo. –

+2

domanda utile !! –

risposta

65

Questa è la nuova sintassi per esplicita relative imports. Significa l'importazione dal pacchetto corrente.

+7

Cosa definisce cos'è il "pacchetto corrente"? – fraxture

+2

Dovrebbe dire * da dove il pacchetto di importazione è *. Significa fondamentalmente lo spazio dei nomi corrente o la directory dei pacchetti. – Keith

+0

Grazie, penso di sapere cosa intendi. Per essere chiari, ti dispiacerebbe fornire un esempio? – fraxture

16

Il punto nel nome del modulo viene utilizzato per l'importazione relativa del modulo (vedere here e here, sezione 6.4.2).

È possibile utilizzare più di un punto, facendo riferimento non al pacchetto di correzione ma ai relativi genitori. Questo dovrebbe essere usato solo all'interno dei pacchetti, nel modulo principale si dovrebbero sempre usare nomi di moduli assoluti.

Problemi correlati