Python: ágil y elegante

Nota: aunque Python ya va por la versión 3.1, dado que muchas librerías no están todavía adaptadas, los ejemplos de esta entrada están enfocadas a rama 2.6.

Python (pronúnciese paiton o paizon), es un lenguaje de programación interpretado (o de scripting) muy rápido de trabajar y con una muy suave curva de aprendizaje.

El típico hola mundo (mostar un texto en la salida estándar, comúnmente la consola):

print "Hola mundo"

Con este lenguaje, se pueden dar comúnmente esos casos de programas muy completos en menos de 100 líneas de código, programados en un tiempo ínfimo (se suele incluir un intérprete interactivo para hacer pruebas), siendo el código muy legible, y por eso es uno de los lenguajes preferidos para programar en linux (donde Python viene comúnmente incluido en muchas distribuciones).

Ejemplo de sintaxis:

# Esto es un comentario
'''
Esto es un comentario multilínea
'''

class Padre:
''' Clase Padre, con atributos y métodos '''
pelo = "negro" # Atributo de Padre, de tipo cadena de texto o str
ojos = "marrones"
dedos = 21 # Atributo de padre, de tipo número entero o int

def colorPelo(self):
''' Método, retorna el atributo pelo de la clase.
En Python, el primer argumento de un método es la
instancia de la propia clase, y sólo es necesario si
no se llama a través de una instancia.
'''
return self.pelo # Retorna un valor

class Hijo(Padre):
''' Clase Hijo, hereda los atributos y métodos de padre. '''
ojos = "verdes" # Sobreescribimos un atributo heredado con un nuevo valor

instancia = Hijo() # Instancia de una clase
print instancia.colorPelo() # Mostramos lo que nos retorna el método heredado
print Hijo.colorPelo(instancia) # Igual que el anterior

def pruebaFor(numero):
''' Función, recibe un valor por parámetro '''
for i in range(numero+1):
''' La función range devuelve una lista de números, que parten desde
cero o un valor dado, hasta el anterior al pasado por parámetro.
p.ej. range(0,5) es igual a range(5) y es igual a [0,1,2,3,4]
El for, en python, recorre todos los valores, asignándolos a
la variable, i en este caso (como hace foreach en otros lenguajes).
'''
print i # Muestro el valor de i

lista = [1, 2, "a", instancia] # Lista de valores (array en otros lenguajes)
pruebaFor(5) # Ejecuto la función, dándole el valor 5 por parámetro

Incluye una gran serie de librerías por defecto, incluyendo Tkinter, una utilería de ventanas basada en el vetusto Tk/Tcl.

Por suerte, existen PyGTK y Glade. El primero son las librerías para nuestro lenguaje, con el que poder operar con las librerías GTK, las utilizadas por Gnome, Xfce, y demás, siendo muy ligeras y bien diseñadas.

Glade, por su parte, permite desarrollar ventanas de forma sencilla, guardadas en formato XML (lenguaje de etiquetas), y utilizables por las librerías GTK para cualquier lenguaje.

Usando Python y Glade, crear un programa que tan sólo muestre una ventana es muy sencillo:

# Importamos las librerías
import gtk
import gtk.glade

# Cargamos el fichero de glade
xml = gtk.glade.XML("interfaz.glade")

# Elegimos la ventana
ventana = xml.get_widget("window1") # Si la ventana se llama window1

# Creamos la función de cierre
def cerrar():
print "Ventana cerrada, salimos del bucle de GTK"
# Cerramos el bucle de GTK para devolver el control a Python
gtk.main_quit()

# Conectamos el evento "destroy" de la ventana con nuestra función cerrar
ventana.connect("destroy", cerrar)

# Mostramos la ventana
ventana.show()

# Iniciamos el bucle principal de GTK
gtk.main()

Ya tenéis lo básico para programar con Python.

Enlaces útiles:

Créditos:

0 comentarios:

Publicar un comentario