PEP 8 dice:
- Las importaciones siempre se colocan en la parte superior del archivo, justo después de los comentarios de cualquier módulo y cadenas de documentos, y antes de las constantes y globales del módulo.
En occation, violo PEP 8. Algunas veces importo cosas dentro de funciones. Como regla general, hago esto si hay una importación que solo se usa dentro de una sola función.
Alguna opinión?
EDITAR (la razón por la que siento que importar funciones puede ser una buena idea):
Motivo principal: puede aclarar el código.
- Al mirar el código de una función, podría preguntarme: "¿Qué es la función / clase xxx?" (xxx se utiliza dentro de la función). Si tengo todas mis importaciones en la parte superior del módulo, tengo que ir a buscar allí para determinar qué es xxx. Esto es más un problema cuando se usa
from m import xxx
. Verm.xxx
en la función probablemente me diga más. Dependiendo de lo quem
sea: ¿Es un conocido módulo / paquete de nivel superior (import m
)? ¿O es un submódulo / paquete (from a.b.c import m
)? - En algunos casos, tener esa información adicional ("¿Qué es xxx?") Cerca de donde se usa xxx puede facilitar la comprensión de la función.