hacer clases

Gabriel Genellina gagsl-py2 en yahoo.com.ar
Vie Jun 15 04:33:08 CEST 2007


En Thu, 14 Jun 2007 08:39:50 -0300, hesed franquet <hfb1021 en yahoo.es>  
escribió:

> Hola estoy haciendo un tutorial pero no funcionan las cosas y pruebo con  
> otro todos hacen las clases diferentes pero ninguna me funciona así que  
> haber si me podeis decir como se hacen ya que si que os deben funcionar.

Que significa "hacer clases"?
Esta es una clase:

=== comienzo ===
class Persona(object):
     def __init__(self, nombre, edad):
         self.nombre = nombre
         self.edad = edad

     def saludar(self, otro):
         print "Hola %s, soy %s. Como estas?" % (otro.nombre, self.nombre)

enrique = Persona("Enrique", 24)
juan = Persona("Juan", 25)
enrique.saludar(juan)
juan.saludar(enrique)
=== fin ===

Si copias lo de arriba en un archivo llamado persona.py se puede ejecutar  
haciendo:

C:\TEMP>python persona.py
Hola Juan, soy Enrique. Como estas?
Hola Enrique, soy Juan. Como estas?

Ahora agreguemos (en el mismo archivo persona.py) una nueva clase,  
derivada de Persona, llamémoslo Argentino (algunos dirán que no, que los  
argentinos no son personas, pero bué, a los efectos didácticos aceptémoslo  
por ahora...). La clase Argentino tiene los mismos atributos que una  
persona genérica, pero se diferencia en cómo saluda:

=== comienzo ===
class Argentino(Persona):
     def saludar(self, otro):
         print "%s! Loco, que haces! Soy %s, como estas che?" %  
(otro.nombre, self.nombre)

matias = Argentino("Matias", 18)
matias.saludar(enrique)
=== fin ===

Y podemos ver cómo saluda Matías:
Enrique! Loco, que haces! Soy Matias, como estas che?

Asi que ya ves, creamos dos clases (eso es herencia), tres instancias,  
sobreescribimos un método (eso es polimorfismo)... Ahora te toca seguir  
leyendo, por ejemplo, Inmersión en Python  
<http://es.diveintopython.org/toc.html>

-- 
Gabriel Genellina

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es