En caso de duda, coloco mis declaraciones de importación en la parte superior del módulo. A menudo, esto reduce la repetición, lo cual es bueno. Sin embargo, ¿hay una desventaja en el rendimiento en el caso donde solo una función (o clase) requiere la importación?Importación de Python en el nivel de función VS. Módulo nivel
¿Importar solo lo siguiente cuando se llama a la función?
def func():
from task import test
Si es así, me imagino que podría ser una ligera eficiencia. También supongo que podría obtener algunos puntos adicionales para una recolección de basura más rápida y un alcance variable, ya que los objetos importados no se agregarían al diccionario global. Como otro cartel muy bien puesto:
Esto se debe principalmente a la búsqueda variable. Buscar una variable en el ámbito global requiere una búsqueda de diccionario. Por el contrario, el compilador determina los nombres locales estáticamente y los referencia por índice, por lo que no se requiere buscar el diccionario.
¿Son esas suposiciones justas que estoy totalmente fuera de base?
Gracias
En cuanto al rendimiento de búsqueda de nombre: ** No importa. ** En el caso raro que lo haga, sabrá cuándo ha terminado el código, descubrió que es demasiado lento y tiene un perfil. – delnan