Você está na página 1de 10

Inicio Libros Tutoriales Eventos Foro Buscar

Libros / Python para principiantes / Captulo 3. Mdulos, paquetes y namespaces


/ 3.1. Creando mdulos empaquetados

3.1. Creando mdulos


empaquetados
En Python, cada uno de nuestros archivos .py se denominan mdulos. Estos mdulos,
a la vez, pueden formar parte de paquetes. Un paquete, es una carpeta que contiene
archivos .py . Pero, para que una carpeta pueda ser considerada un paquete, debe
contener un archivo de inicio llamado __init__.py . Este archivo, no necesita contener
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
ninguna instruccin. De hecho, puede estar completamente vaco.

paquete
__init__.py
modulo1.py
modulo2.py
modulo3.py

Los paquetes, a la vez, tambin pueden contener otros sub-paquetes:

.
paquete
__init__.py
modulo1.py
subpaquete
__init__.py
modulo1.py
modulo2.py

Y los mdulos, no necesariamente, deben pertenecer a un paquete:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
modulo1.py
paquete
__init__.py
modulo1.py
subpaquete
__init__.py
modulo1.py
modulo2.py

3.1.1. Importando mdulos enteros


El contenido de cada mdulo, podr ser utilizado a la vez, por otros mdulos. Para ello,
es necesario importar los mdulos que se quieran utilizar. Para importar un mdulo,
se utiliza la instruccin import , seguida del nombre del paquete (si aplica) ms el
nombre del mdulo (sin el .py ) que se desee importar.

# -*- coding: utf-8 *-*

import modulo # importar un mdulo que no pertenece a un paquete

import paquete.modulo1 # importar un mdulo que est dentro de un paquete


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
import paquete.subpaquete.modulo1

La instruccin `import seguida de nombre_del_paquete.nombre_del_modulo, nos


permitir hacer uso de todo el cdigo que dicho mdulo contenga.

NOTA
Python tiene sus propios mdulos, los cuales forman parte de su librera de mdulos
estndar, que tambin pueden ser importados.

3.1.2. Namespaces
Para acceder (desde el mdulo donde se realiz la importacin), a cualquier elemento
del mdulo importado, se realiza mediante el namespace, seguido de un punto ( . ) y el
nombre del elemento que se desee obtener. En Python, un namespace, es el nombre
que se ha indicado luego de la palabra import, es decir la ruta (namespace) del mdulo:

print modulo.CONSTANTE_1
print paquete.modulo1.CONSTANTE_1
print paquete.subpaquete.modulo1.CONSTANTE_1

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
3.1.2.1. Alias
Es posible tambin, abreviar los namespaces mediante un alias. Para ello, durante la
importacin, se asigna la palabra clave as seguida del alias con el cul nos referiremos
en el futuro a ese namespace importado:

import modulo as m
import paquete.modulo1 as pm
import paquete.subpaquete.modulo1 as psm

Luego, para acceder a cualquier elemento de los mdulos importados, el namespace


utilizado ser el alias indicado durante la importacin:

print m.CONSTANTE _1
print pm.CONSTANTE _1
print psm.CONSTANTE_1

3.1.2.2. Importar mdulos sin utilizar namespaces


En Python, es posible tambin, importar de un mdulo solo los elementos que se desee
utilizar. Para ello se utiliza la instruccin from seguida del namespace, ms la
instruccin import seguida del elemento que se desee importar:

from paquete.modulo1 import CONSTANTE_1


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
En este caso, se acceder directamente al elemento, sin recurrir a su namespace:

print CONSTANTE_1

Es posible tambin, importar ms de un elemento en la misma instruccin. Para ello,


cada elemento ir separado por una coma ( , ) y un espacio en blanco:

from paquete.modulo1 import CONSTANTE_1, CONSTANTE_2

Pero qu sucede si los elementos importados desde mdulos diferentes tienen los
mismos nombres? En estos casos, habr que prevenir fallos, utilizando alias para los
elementos:

from paquete.modulo1 import CONSTANTE_1 as C1, CONSTANTE_2 as C2


from paquete.subpaquete.modulo1 import CONSTANTE_1 as CS1, CONSTANTE_2 as
CS2

print C1
print C2
print CS1
print CS2

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
PEP 8: importacin
La importacin de mdulos debe realizarse al comienzo del documento, en orden
alfabtico de paquetes y mdulos.

Primero deben importarse los mdulos propios de Python. Luego, los mdulos de
terceros y finalmente, los mdulos propios de la aplicacin.

Entre cada bloque de imports, debe dejarse una lnea en blanco.

De forma alternativa (pero muy poco recomendada), tambin es posible importar todos
los elementos de un mdulo, sin utilizar su namespace pero tampoco alias. Es decir, que
todos los elementos importados se acceder con su nombre original:

from paquete.modulo1 import *

print CONSTANTE_1
print CONSTANTE_2

NOTA
Abrir una terminal e iniciar el shell interactivo (intrprete) de Python. A continuacin,
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
importar el mdulo this :

import this

Anterior Siguiente
Captulo 3. Mdulos, paquetes y namespaces Captulo 4. Funciones definidas por el usuario

Copyright (c) 2011-2013 Eugenia Bahit. La copia y redistribucin de esta pgina se permite bajo los trminos de
la licencia Creative Commons Atribucin NoComercial SinDerivadas 3.0 Unported siempre que se conserve esta
nota de copyright.

INDICE DE CONTENIDOS

1. Preparacin del entorno de desarrollo

2. Estructura y elementos del lenguaje

Captulo 3. Mdulos, paquetes y namespaces

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
3.1. Creando mdulos empaquetados

4. Funciones definidas por el usuario

5. Introduccin a la orientacin a objetos

6. Mtodos principales del objeto String

7. Mtodos principales del objeto list

8. Mtodos principales del objeto dict

9. El objeto File: trabajando con archivos

10. Un paseo por los mdulos de la librera estndar

11. Introduccin a MySQL y el lenguaje SQL

12. Bases de datos en Python con MySQL

13. Corriendo aplicaciones Python en la web

14. Enviando e-mails con formato HTML desde Python

3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

Você também pode gostar