Saltar al contenido principal
Página

Tema 1.6 - Importaciones

  • Las importaciones, generalmente deben realizarse en líneas separadas:
1
2
3
# Correcto: 
import os 
import sys

1
2
# Incorrecto: 
import sys, os


Sin embargo, es correcto decir:

1
2
# Correcto:
from subprocess import Popen, PIPE


  • Las importaciones siempre se colocan al comienzo de un archivo, justamente después de los comentarios y cadenas de documentación del módulo, y antes de las variables constantes y variables globales del módulo.

 Las importaciones deben estar agrupadas en el siguiente orden:

1.      Importaciones de la librería estándar.

2.      Importaciones de terceros relacionadas.

3.      Importaciones locales de la aplicación / librería.

 

Se debe poner una línea en blanco entre cada grupo de importaciones.

  • Se recomiendan las importaciones absolutas, ya que generalmente son más legibles y tienden a comportarse mejor (o al menos retornan mejores mensajes de error) si el sistema de importación está configurado incorrectamente (como cuando un directorio dentro de un paquete termina en sys.path ):
1
2
3
import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example


Sin embargo, las importaciones relativas explícitas son una alternativa aceptable en lugar de las importaciones absolutas, especialmente cuando se trata con paquetes que tienen un diseño muy complejo, donde el uso de importaciones absolutas sería innecesariamente detallado:

1
2
from . import sibling
from .sibling import example


Se deben evitar paquetes con diseños complejos y  también se deben usar importaciones absolutas en lo más posible, ya que estas son las más portables y legibles.

 Las importaciones relativas implícitas nunca deben utilizarse. 

  • Al importar una clase desde un módulo que contiene una clase, generalmente está bien realizar lo siguiente:
1
2
from myclass import MyClass
from foo.bar.yourclass import YourClass

Si esto causa coincidencias con nombres locales, entonces se debe realizar lo siguiente:

1
2
import myclass
import foo.bar.yourclass


 utiliza "myclass. MyClass" y "foo.bar.yourclass.YourClass".

  •  Deben evitarse las importaciones que usen comodines (nótese el comodín o asterisco al final del import from <module> import *), ya que no dejan en claro qué partes de un módulo están presentes en el espacio de nombres, esto puede confundir tanto a los lectores como a muchas herramientas automatizadas a la hora de leer el código.


Última modificación: miércoles, 16 de marzo de 2022, 09:44