Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: TheCrimulo en 9 Diciembre 2014, 18:09 pm



Título: [PYTHON] Tutorial de clases en Python
Publicado por: TheCrimulo en 9 Diciembre 2014, 18:09 pm
Tener todo en un archivo es complicado, y más si es un proyecto largo, pero para algo estan las CLASES.

Para hacer una clase necesitamos un nivel de conocimiento medio/bajo, saber que hace def y un poco de lo demás.

Empezaremos creando una clase que cada vez que sea como un humano.

Código
  1. class Persona: #Siempre es necesario poner (self,opcional) en los parametros de la funcion.
  2.    def __init__(self,edad): #Esto se ejecutara cada vez que lo instanciemos.
  3.        self.edad = 19 #La edad base sera 19.
  4.    def hablar(self,texto):
  5.        print texto #Cuando se llame a la funcion, dira lo que pongamos.

Con esto haremos nuestra clase, pero ahora hay que instanciarla de esta manera:

Código
  1. Paco = Persona(36) #Ponemos los años, en este caso, 36.

Y podremos hacer cosas con ella, por ahora solo hablar, pero ya le añadiremos más.

Hablar:
Código
  1. Paco.hablar('Hola, me llamo Paco y tengo ', Paco.edad, 'años'

Ahora, haremos dos clases nuevas que harán lo mísmo que humano, pero con más funciones, a esto se le llama HERENCIA

Código
  1. class Programador(Persona): #Con (Persona) heredamos de ella, y si persona heredara de otra clase, Programador lo tendría, se llama Herencia Multiple
  2.    def programar(self,lenguaje):
  3.        print 'Voy a programar en ', lenguaje
  4. class Cocinero(Persona):
  5.    def cocinar(self,comida):
  6.        print 'Voy a cocinar ', comida
  7. class Estudioso(Cocinero,Programador): #Esto hereda de Cocinero y Programador a la vez, es una herencia multiple, pues estos dos heredan de Persona
  8.    def Estudiar(self,tema):
  9.        print 'Voy a estudiar ', tema

Ahora Cocinero y Programador heredan de Persona y Estudioso puede hacer lo que los dos hacen.

Instanciando:
Código
  1. Paco = Programador(36) #Como sigue heredando de Persona, hay que poner la edad
  2. Pedrito = Cocinero(31)
  3. Ricardo = Estudioso(26) #Ricardo hereda de Cocinero y de Programador, estos dos de Persona, como habreis adivinado, ¡La edad!

Ahora Pedrito puede hacer Pedrito.hablar('LALAL') y Pedrito.cocinar('Ensalada')
Paco, Paco.hablar('LELEL') y Paco.programar('C++')
Pero Ricardo puede hacer:
Ricardo.hablar('LULUL')
Ricardo.programar('Java')
Ricardo.cocinar('Pavo con verduritas')

Espero que les haya sido útil,
Un saludo,
TheCrimulo