2013-03-27 13 views

risposta

15

No, la differenza non è una questione di prestazioni. In entrambi i casi, l'intero modulo deve essere analizzato e qualsiasi codice a livello di modulo verrà eseguito. L'unica differenza è negli spazi dei nomi: nel primo, tutti i nomi nel modulo importato diventeranno nomi nel modulo corrente; nel secondo, solo il nome del pacchetto è definito nel modulo corrente.

Detto questo, c'è molto raramente una buona ragione per utilizzare from foo import *. Importa il modulo o importa da esso nomi specifici.

+0

sì, grazie per la risposta. Penso che ci siano anche alcuni motivi per usare "from package import *" quando il nome del pacchetto può essere cambiato. o c'è un altro pacchetto con le stesse funzioni che sostituirà quello originale causa la modifica del requisito. – Zuckonit

+1

La differenza di prestazioni può accumularsi da tutte le ricerche di attributi 'package.foo' quando si usa effettivamente' pacchetto'. Tuttavia, se questo è un problema, importa nomi specifici o cache cercati nei nomi dei locali. –

+4

Quando un pacchetto cambia nome, puoi semplicemente "importare nuovo nome come vecchio nome". Se c'è il rischio di cambiare spesso i pacchetti, 'importa subito il pacchetto come interfacciadocumento '. –

Problemi correlati