Estratto dal manuale di studio di Python per la cronaca.
Il client può eseguire l'istruzione import o from. Se il modulo non viene caricato, queste istruzioni cercheranno e compileranno il programma file del modulo. La differenza principale è che import legge l'intero modulo, quindi deve essere definito prima che il nome della variabile possa essere letto; From otterrà (o copierà) i nomi delle variabili specifiche del modulo.
import fa sì che un nome di variabile si riferisca all'intero oggetto modulo, quindi le proprietà del modulo devono essere ottenute tramite il nome del modulo (ad esempio, module1.printer). e from copierà il nome della variabile in un altro ambito, così da poter usare direttamente il nome della variabile copiato nello script senza passare attraverso un modulo (ad esempio, stampante).
dall'istruzione from ha il potenziale di rompere gli spazi dei nomi. Se importi variabili usando from e queste variabili sono duplicate con le variabili esistenti nello scope, le variabili verranno silenziosamente sovrascritte. Questo non è un problema quando si usano le istruzioni import, perché il suo contenuto deve essere ottenuto tramite il nome del modulo. Tuttavia, quando si usa from, questo non è un grosso problema nella pratica, purché tu capisca e preveda che ciò accada, specialmente se elenchi chiaramente i nomi delle variabili di importazione (ad esempio, da modulo import x, y, z).
D'altra parte, quando viene usato con la chiamata di ricarica, l'istruzione from presenta un problema serio, perché il nome della variabile importata può riferirsi a una versione precedente dell'oggetto. Inoltre, la forma da importazione del modulo * può effettivamente rompere il namespace e rendere difficile comprendere i nomi delle variabili, specialmente quando si importano più di un file.
Un suggerimento più pragmatico è che i moduli semplici tendono generalmente a usare import piuttosto che da proveniente. La maggior parte delle istruzioni from viene usata per enumerare esplicitamente le variabili desiderate e sono limitate all'uso del modulo da * solo una volta per file. In questo modo, qualsiasi nome di variabile indefinito può essere considerato esistente nel modulo riferito da *. Devi davvero usare import quando devi usare la stessa variabile nome variabile definita in due moduli diversi, nel qual caso non puoi usare from.
Ho parlato molto, non so cosa dire, parliamone brevemente.
- Importa Modulo # Introduce i moduli
- da Modulo import Other # Introduci classi, funzioni o variabili nel modulo
- da importazione modulo * # Introdurre tutti i membri 'pubblici' nel modulo
In termini semplici:
importare una classe #把整个一班的学生引入了进来
da un gruppo di importati di Xiao Wang #只把一般的小王引入了进来
Per esempio:
Il pacchetto temporale è un esempio, e i seguenti due metodi di scrittura sono gli stessi, come segue:
|