desarrollar un módulo para visuse
DESCRIPTION
Updated slideshow: http://www.slideshare.net/jlpino/como-hacer-un-mdulo Más información sobre el proyecto en: http://visuse.wordpress.comTRANSCRIPT
![Page 1: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/1.jpg)
Desarrollar un módulo para Visuse
José Luis López Pino
http://visuse.wordpress.com
![Page 2: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/2.jpg)
Python - Propiedades
Es un lenguaje de alto nivel. Es un lenguaje interpretado (se ejecuta con un
intérprete, no se compila). Es multiparadigma:
Es orientado a objetos. Es funcional.
Es fácil de aprender. Es libre. Es portable.
![Page 3: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/3.jpg)
Python - Propiedades
Es dinámicamente tipado (una variable puede tomar valores de distintos tipos).
Es fuertemente tipado (una variable no se puede tratar como si fuese de otro tipo).
Es implícitamente tipado (no hay que declarar las variables que usamos).
Distingue entre mayúsculas y minúsculas.
![Page 4: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/4.jpg)
Python - Sintaxis
Las sentencias no necesitan carácter de terminación.
Los bloques son especificados por indentación. Los comentarios comienzan con # . Asignamos con =. Comprobamos la igualdad con ==. Incrementamos/decrementamos con += y -=.
![Page 5: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/5.jpg)
Python – Estructuras de datos
Tenemos listas, tuplas y diccionarios. Las listas de comportan como vectores de una
dimensión. Los vectores pueden ser de cualquier tipo,
incluso puedes mezclar tipos. El primer elemento es 0 y -1 el último. Una variable puede apuntar a una función. El operador : sirve para acceder a rangos de un
vector.
![Page 6: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/6.jpg)
Python – Cadenas de texto
Se pueden usar con comillas dobles o simples. Para las cadenas multilinea podemos usamos
tres comillas (simples o dobles). Podemos meter valores dentro de una cadena
utilizando el operador %: >>>print "Name: %s\nNumber: %s\nString: %s" %
(myclass.name, 3, 3 * "-")
También podemos hacer sustituciones con un diccionario: >>> print "This %(verb)s a %(noun)s." % {"noun":
"test", "verb": "is"}
![Page 7: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/7.jpg)
Python – Estructuras de control
1.for number in range(10):2. if number in (3, 4, 7, 9):3. Blablabla4. elif number == 8:5. bleblebleble6. else:7. blibliblibli8. else:9. blebleble10.while loquesea == 1:11. print "Fantástico"
![Page 8: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/8.jpg)
Python - Funciones
Se declaran con “def” keyword. Los parámetros se pasan por referencia. Sin embargo, los tipos inmutables (tuplas,
enteros, cadenas, etc) no pueden ser cambiados.
Podemos especificar parámetros opcionales asignándoles un valor por defecto.
# Soy un comentariodef soy_una_funcion(lista, entero=2, cadena='por defecto'): lista.append(cadena)
![Page 9: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/9.jpg)
Python - Clases
Admite herencia múltiple.
class MyClass: common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable
# This is the class instantiation>>> classinstance = MyClass()>>> classinstance.myfunction(1, 2)
![Page 10: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/10.jpg)
Python - Excepciones
def some_function(): try: # Division by zero raises an exception 10 / 0 except ZeroDivisionError: print "Oops, invalid." else: # Exception didn't occur, we're good. pass finally: # This is executed after the code block is run # and all exceptions have been handled, even # if a new exception is raised while handling. print "We're done with that."
![Page 11: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/11.jpg)
Python – Importar
Importar una biblioteca: import libreria
Importar una función concreta: from libreria import funcion
![Page 12: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/12.jpg)
¿Qué necesitamos para trabajar?
Geany: un editor para Python. Subversion: sistema de control de versiones. Python ~2.6.2. Elegir un buscador.
![Page 13: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/13.jpg)
Geany
IDE ligero o editor con las funciones básicas de un IDE.
Multiplataforma. http://www.geany.org
![Page 14: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/14.jpg)
Empezamos
Instalamos Python Ubuntu: sudo apt-get install python2.6 Windows: descargar de python.org la 2.6.4.
Alta en la forja de rediris. Descargamos el proyecto:
svn checkout https://forja.rediris.es/svn/cusl4-visuse
Los módulos los tenemos en trunk/visuse/modulos Añadimos la clase a classes.py Escribimos el módulo en Modulo_Nombre.py
![Page 15: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/15.jpg)
Contenido del módulo
Obtenemos los datos del buscador (usando XML, JSON o lo que corresponda).
Creamos una instancia de la clase por cada resultado.
Creamos una lista de resultados. Mostramos la lista en pantalla para comprobar
que no hay problemas.
![Page 16: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/16.jpg)
Referencias
Python in 10 minutes. Dive into Python. Python para todos.
![Page 17: Desarrollar un módulo para Visuse](https://reader033.vdocuments.site/reader033/viewer/2022052622/558e12151a28ab5d128b46bb/html5/thumbnails/17.jpg)
Eso es todo
¿Alguna pregunta?
Imagen de Discoveryschool.com