In caso di dubbio, di solito inserisco le mie istruzioni di importazione nella parte superiore del modulo. Spesso, questo riduce la ripetizione, che è bello. C'è un lato negativo delle prestazioni, tuttavia, nel caso in cui solo una singola funzione (o classe) richiede l'importazione?Importazione Python a livello di funzione VS. Livello modulo
importa quanto segue quando viene richiamata la funzione?
def func():
from task import test
Se è così, immagino che potrebbe essere una leggera efficienza. Suppongo anche che si possano ottenere alcuni punti aggiunti per una raccolta dei dati più veloce e un ambito variabile, poiché gli oggetti importati non verrebbero aggiunti al dizionario globale. Come un altro poster gentilmente messo:
Ciò è dovuto principalmente alla ricerca variabile. La ricerca di una variabile nell'ambito globale richiede una ricerca nel dizionario. Al contrario, il compilatore determina staticamente i nomi locali e li fa riferimento per indice, quindi non è richiesta la ricerca del dizionario.
Queste ipotesi corrette sono totalmente fuori base?
Grazie
Come per le prestazioni di ricerca del nome: ** Non importa. ** Nel raro caso in cui lo fai, scoprirai quando avrai finito il codice, scoperto che è troppo lento e profilato. – delnan