Cuando se tiene una biblioteca bien escrito, que a veces es el caso en Python, sólo debéis importarlo y utilizarlo como él. La biblioteca bien escrita tiende a quitar vida e idioma, resultando en un agradable código de lectura, donde raramente hace referencia a la biblioteca. Cuando una biblioteca está bien escrita, no debería necesitar cambiar el nombre ni demasiada frecuencia.
import gat
node = gat.Node()
child = node.children()
A veces no es posible escribirlo de esta manera, o bien, si desea levantar cosas de la biblioteca que importó.
from gat import Node, SubNode
node = Node()
child = SubNode(node)
A veces haces esto por muchas cosas, si la cadena de importación se desborda 80 columnas, Es buena idea hacer esto:
from gat import (
Node, SubNode, TopNode, SuperNode, CoolNode,
PowerNode, UpNode
)
La mejor estrategia es mantener todas estas importaciones sobre la la parte superior del archivo. Preferiblemente ordenados alfabéticamente, import-statements primero, luego de import-statements.
Ahora te digo por qué esta es la mejor convención.
Python podría haber tenido una importación automática, que se vería desde las importaciones principales para el valor cuando no se puede encontrar desde el espacio de nombres global. Pero esta no es una buena idea. Explico brevemente por qué. Además de ser más complicado de implementar que de simple importación, los programadores no pensarían tanto en las dependencias y descubrirían que las cosas importadas deberían hacerse de otra manera que solo investigar las importaciones.
La necesidad de descubrir las dependencias es una de las razones por las cuales las personas odian "de ... importar *". Sin embargo, existen algunos ejemplos malos donde necesita hacer esto, por ejemplo, opengl -wrappings.
Por lo tanto, las definiciones de importación son realmente valiosas ya que definen las dependencias del programa. Es la forma en que deberías explotarlos. De ellos puede comprobar rápidamente de dónde se importa una función extraña.
Ver http://stackoverflow.com/questions/187453/import-package-vs-import-packagespecifictype –
Ver http://stackoverflow.com/questions/186472/from-x-import-a-versus-import -x-xa –