Professional Documents
Culture Documents
Introduccion a PYTHON
Cesar Husillos & Vctor Terron
IAA-CSIC
Abril de 2014
Cesar Husillos & Vctor Terr
on (IAA-CSIC)
M
odulos
Abril de 2014
1 / 59
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
2 / 59
Overview
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
3 / 59
Overview
Modulos
Overview: Que son?
M
odulos
Abril de 2014
4 / 59
Overview
Modulos
Overview: Para que sirven?
M
odulos
Abril de 2014
5 / 59
Overview
Modulos
Overview: Ejemplo de modulo (areas.py)
return lado ** 2
def circulo ( radio ):
return pi * radio ** 2
M
odulos
Abril de 2014
6 / 59
Overview
Modulos
Overview: C
omo se usan?
M
odulos
Abril de 2014
7 / 59
Overview
Modulos
Overview: C
omo se usan?
M
odulos
Abril de 2014
8 / 59
Organizaci
on
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
9 / 59
Organizaci
on
Modulos
Organizaci
on del c
odigo
M
odulos
Abril de 2014
10 / 59
Organizaci
on
Modulos
Organizaci
on del c
odigo (II)
Estas
piezas o fragmentos de codigo se gestionan de
forma independiente (programacion, pruebas,
mejoras,...) y luego se juntan en programas mas
complejos.
Esto mismo es lo que aprenderemos en esta parte del
curso de PYTHON.
Cesar Husillos & Vctor Terr
on (IAA-CSIC)
M
odulos
Abril de 2014
11 / 59
Reutilizaci
on
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
12 / 59
Reutilizaci
on
Modulos
Reutilizaci
on
M
odulos
Abril de 2014
13 / 59
Reutilizaci
on
Modulos
Cuanto hay desarrollado?
M
odulos
Abril de 2014
14 / 59
C
omo se crean los m
odulos?
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
15 / 59
C
omo se crean los m
odulos?
Modulos
Proceso de generaci
on y uso
1
2
3
Creacion.
Implementacion.
Almacenamiento.
M
odulos
Abril de 2014
16 / 59
C
omo se crean los m
odulos?
Modulos
1. Creaci
on
M
odulos
Abril de 2014
17 / 59
C
omo se crean los m
odulos?
Modulos
2. Implementaci
on
1
M
odulos
Abril de 2014
18 / 59
C
omo se crean los m
odulos?
Modulos
3. Almacenamiento
M
odulos
Abril de 2014
19 / 59
C
omo se usan los m
odulos?
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
20 / 59
C
omo se usan los m
odulos?
Modulos
Utilizaci
on
nombre_modulo . variable
nombre_modulo . funcion ([ parametro1 , parametro2 ,...])
M
odulos
Abril de 2014
21 / 59
C
omo se usan los m
odulos?
Modulos
Otras instrucciones de importaci
on (I)
Importamos todo el m
odulo a nuestro espacio de trabajo con la instrucci
on
M
odulos
Abril de 2014
22 / 59
C
omo se usan los m
odulos?
Modulos
Otras instrucciones de importaci
on (II)
from n o m b r e _ m o d u l o _ d i f i c i l _ y _ l a r g o _ d e _ e s c r i b i r as modalias
Ahora puedo acceder al contenido del m
odulo como modalias.variable o
modalias.funcion([parametros]).
Finalmente, puedo poner alias a variables o funciones del m
odulo
M
odulos
Abril de 2014
23 / 59
C
omo se usan los m
odulos?
Modulos
Overview: Ejemplo de modulo (areas.py)
return lado ** 2
def circulo ( radio ):
return pi * radio ** 2
M
odulos
Abril de 2014
24 / 59
C
omo se usan los m
odulos?
Modulos
Otras instrucciones de importaci
on: Ejemplo
>>> import areas
Area cuadrado = 4
Area circulo = 3.1416
>>> areas . pi
3.1416
>>> areas . cuadrado (3)
9
>>> from areas import *
>>> circulo (1)
3.1416
>>> pi
3.1416
>>> from areas import cuadrado
>>> cuadrado (4)
16
>>> import areas as a
>>> a . pi
3.1416
>>> from areas import circulo as ac
>>> ac (2)
Cesar12.5664
Husillos & Vctor Terr
on (IAA-CSIC)
M
odulos
Abril de 2014
25 / 59
C
omo se usan los m
odulos?
Modulos
Error de importaci
on
M
odulos
Abril de 2014
26 / 59
C
omo se usan los m
odulos?
Modulos
Error de importaci
on
M
odulos
Abril de 2014
27 / 59
C
omo se usan los m
odulos?
Modulos
Ruta de b
usqueda de m
odulos
M
odulos
Abril de 2014
28 / 59
C
omo se usan los m
odulos?
Modulos
Obtener rutas de m
odulos en el sistema
echo $PYTHONPATH
import sys
print sys . path
M
odulos
Abril de 2014
29 / 59
C
omo se usan los m
odulos?
Modulos
Modificar rutas de m
odulos en el sistema
M
odulos
Abril de 2014
30 / 59
C
omo se usan los m
odulos?
Modulos
Modificaci
on de PYTHONPATH
LINUX
Int
erprete bash export
PYTHONPATH=$PYTHONPATH:ruta dir modulos
Int
erprete csh setenv PYTHONPATH
$PYTHONPATH:ruta dir modulos
WINDOWS
Inicio Boton derecho sobre Equipo opcion de
menu Propiedades pestana Opciones avanzadas
boton Variables de entorno ...
Buscar PYTHONPATH y, si no esta, boton Nueva...
Nombre de variable: PYTHONPATH
Valor de la variable: ruta dir modulos
Cesar Husillos & Vctor Terr
on (IAA-CSIC)
M
odulos
Abril de 2014
31 / 59
C
omo se usan los m
odulos?
Modulos
Modificaci
on de PYTHONPATH (Windows)
M
odulos
Abril de 2014
32 / 59
C
omo se usan los m
odulos?
Modulos
Modificaci
on de ruta de b
usqueda de PYTHON (usando el modulo sys)
M
odulos
Abril de 2014
33 / 59
Espacios de Nombres
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
34 / 59
Espacios de Nombres
Modulos
Ejemplo ilustrativo
Algo raro?
M
odulos
Abril de 2014
35 / 59
Espacios de Nombres
Modulos
Ejemplo ilustrativo
M
odulos
Abril de 2014
36 / 59
Espacios de Nombres
Modulos
Espacios de nombres (namespaces) I
M
odulos
Abril de 2014
37 / 59
Espacios de Nombres
Modulos
Espacios de nombres (Namespaces) II
M
odulos
Abril de 2014
38 / 59
Declaraci
on y Ejecuci
on
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
39 / 59
Declaraci
on y Ejecuci
on
Modulos
Separando implementaci
on y ejecuci
on
Declaracion de variables
Implementacion de funciones
Instrucciones ejecutables (print, llamadas a
funciones,...)
M
odulos
Abril de 2014
40 / 59
Declaraci
on y Ejecuci
on
Modulos
Separando implementaci
on y ejecuci
on
areas2.py
""" Modulo para el calculo de areas de formas basicas """
pi = 3.1416
return lado ** 2
def circulo ( radio ):
return pi * radio ** 2
if __name__ == __main__ :
print Area cuadrado = , cuadrado (2)
print Area circulo = , circulo (1)
Cesar Husillos & Vctor Terr
on (IAA-CSIC)
M
odulos
Abril de 2014
41 / 59
Declaraci
on y Ejecuci
on
Modulos
Separando implementaci
on y ejecuci
on
M
odulos
Abril de 2014
42 / 59
Declaraci
on y Ejecuci
on
Modulos
Separando implementaci
on y ejecuci
on
M
odulos
Abril de 2014
43 / 59
Paso de par
ametros al m
odulo
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
44 / 59
Paso de par
ametros al m
odulo
Modulos
Paso de parametros al script
M
odulos
Abril de 2014
45 / 59
Paso de par
ametros al m
odulo
Modulos
Paso de parametros al script
parametros.py
import sys
if __name__ == __main__ :
print Numero de parametros = , len ( sys . argv )
for s in sys . argv :
print s , -> , type ( s )
M
odulos
Abril de 2014
46 / 59
Paso de par
ametros al m
odulo
Modulos
Paso de parametros al script
M
odulos
Abril de 2014
47 / 59
Notas finales
Indice
1
2
3
4
5
6
7
8
9
Overview
Organizacion
Reutilizacion
Como se crean los modulos?
Como se usan los modulos?
Espacios de Nombres
Declaracion y Ejecucion
Paso de parametros al modulo
Notas finales
M
odulos
Abril de 2014
48 / 59
Notas finales
Modulos
Recarga de m
odulos
Abrir consola
Editar el c
odigo: crear la funci
on triangulo(base, altura)
Reimportar el m
odulo (Funciona?)
Recargar el m
odulo (Funciona?)
M
odulos
Abril de 2014
49 / 59
Notas finales
Modulos
Recarga de m
odulos: Ejemplo
M
odulos
Abril de 2014
50 / 59
Notas finales
Modulos
Fichero areas.pyc
M
odulos
Abril de 2014
51 / 59
Notas finales
Modulos
Contenido de un m
odulo
M
odulos
Abril de 2014
52 / 59
Notas finales
Modulos
Funciones de documentaci
on
Funcion dir()
Sin argumentos, devuelve los nombres de variables y
funciones disponibles en la sesion.
Con argumentos (el nombre de un modulo, p.e.),
devuelve las variables disponibles para ese
argumento.
>>> dir ( areas )
[ __builtins__ , __doc__ , __file__ , __name__ ,
__package__ , circulo , cuadrado , pi ]
M
odulos
Abril de 2014
53 / 59
Notas finales
Modulos
Funciones de documentaci
on
M
odulos
Abril de 2014
54 / 59
Notas finales
Modulos
Funciones de documentaci
on
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/2.7/tutorial/.
...
>>> help(areas.circulo)
Help on function circulo in module areas:
circulo(radio)
Calcula el area del circulo dado el radio
(END)
Cesar Husillos & Vctor Terr
on (IAA-CSIC)
M
odulos
Abril de 2014
55 / 59
Notas finales
Modulos
Formas de reutilizaci
on de c
odigo PYTHON (I)
Posibilidades:
1
Abro el modulo, copio todo su contenido al
portapapeles y lo pego en mi nuevo programa.
2
Cargo en mi fichero todo el modulo
import modulo
3
M
odulos
Abril de 2014
56 / 59
Notas finales
Modulos
Formas de reutilizaci
on de c
odigo PYTHON (II)
Inconvenientes:
1
Puedo equivocarme al copiar por fallar al seleccionar lo que quiero, o por no incluirlo
todo (dichoso rat
on!!!).
M
odulos
Abril de 2014
57 / 59
Notas finales
Modulos
Formas de reutilizaci
on de c
odigo PYTHON (III)
Lo importa TODO.
Sintaxis sencilla.
Inconvenientes:
1
Lo importa TODO.
Puede que el m
odulo ocupe mucho. Mi programa pesa m
as (en KB). Efecto
creciente a medida que importe m
as y m
as m
odulos.
M
odulos
Abril de 2014
58 / 59
Notas finales
Modulos
Formas de reutilizaci
on de c
odigo PYTHON (IV)
Programas
optimos a nivel de tama
no y simplicidad.
Simplificaci
on de los nombres de variables y m
etodos. Se accede a ellos mediante la
llamada a variable o funci
on.
Inconvenientes:
1
M
ultiples sentencias de importaci
on. Conocimiento avanzado del contenido de los
m
odulos.
M
ultiples sentencias de importaci
on.
Posibilidad de colisi
on de nombres.
M
odulos
Abril de 2014
59 / 59