Desarrollar un módulo para Visuse

Post on 27-Jun-2015

919 views 1 download

description

Updated slideshow: http://www.slideshare.net/jlpino/como-hacer-un-mdulo Más información sobre el proyecto en: http://visuse.wordpress.com

Transcript of Desarrollar un módulo para Visuse

Desarrollar un módulo para Visuse

José Luis López Pino

http://visuse.wordpress.com

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.

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.

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 -=.

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.

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"}

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"

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)

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)

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."

Python – Importar

Importar una biblioteca: import libreria

Importar una función concreta: from libreria import funcion

¿Qué necesitamos para trabajar?

Geany: un editor para Python. Subversion: sistema de control de versiones. Python ~2.6.2. Elegir un buscador.

Geany

IDE ligero o editor con las funciones básicas de un IDE.

Multiplataforma. http://www.geany.org

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

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.

Referencias

Python in 10 minutes. Dive into Python. Python para todos.

Eso es todo

¿Alguna pregunta?

Imagen de Discoveryschool.com