Tutorial clases python 3
Ya hablamos de las clases y como se definen y funcionan con sus metodos y variables de clase,ahora toca hablar de la herencia,la cual es cuando tomamos atributos de una clase madre llamada clase super(superclass),la cual le pasa atributos y metodos a nuestra clase hija de la cual deriva de la superclass.
La clase super es la clase a la cual no le pasamos argumentos o solo le pasamos el argumento object:
class Ejemplo(object):
Cuando una clase es creada a base de otra se usa el nombre de la superclase como parametro:
class Ejemplo2(Ejemplo):
Cuando creamos una clase nueva a base de otra clase,la clase hija tiene los atributos y metodos de la clase madre:
#!/usr/bin/env python3
class Madre(object):
def __init__(self):
self.hola = “Hola mundo”
class Hija(Madre):
pass
ejemplo = Hija()
print (ejemplo.hola)
Como vemos no se ha definido una nueva,cuando esto ocurre se le conoce como sobrecarga(override):
#!/usr/bin/env python3
class Madre(object):
def __init__(self):
self.hola = “Hola mundo”
class Hija(Madre):
def __init__(self):
self.hola = “Hola otra vez”
ejemplo = Hija()
print (ejemplo.hola)
Como podemos ver parece que sobrecargamos la variable,pero en realidad sobrecargamos el constructor,(el metodo constructor),por ejemplo:
Si lo ejecutamos dará un error porque no hemos definido la variable hola en el constructor de la clase hija.
Aun asi podemos sobrecargar el constructor,pero no así los demás métodos:
#!/usr/bin/env python3
class Madre(object):
def __init__(self):
self.hola = "Hola mundo"
def hola(self): # Metodo de clase madre
self.hola = "Hola mundo"
return self.hola
class Hija(Madre):
def __init__(self): # Sobrecargacamos el constructor
self.otra_var = "Hola otra vez"
ejemplo = Hija()
print (ejemplo.hola()) # Ahora imprimimos el método
Veamos un ejemplo,las Pc continen un forma especial,pero existen Laptos,Netbooks y cada una tiene su hardware y software,podriamos definir una Pc de esta manera:
class Pc(object):
def __init__(self):
self.partes = ['hardaware','software']
self.stdout = 'pantalla'
self.stdin = 'teclado'
self.nombre = 'Pc'
Ahora definimos una netbook derivada de la clase Pc:
class Netbook(Pc):
def __init__(self,arch,sistema,procesador):
Pc.__init__(self)
"""^Para llamar el los atributos del constructor de la clase madre lo hacemos de esta manera"""
self.arch = arch
self.portable = 'muy portatil'
self.sistema = sistema
self.procesador = procesador
def ver(self):
print ('Una netbook %s arquitectura %s' %(self.procesador,self.arch))
print ('Contiene un sistema %s y es %s' %(self.sistema,self.portable))
print ('Es de la familia %s' %(self.nombre))
for i in self.partes:
print ('Partes : %s' %(i))
hp_mini = Netbook("x86","GNU/Linux","intel")
hp_mini.ver()
Eso es todo,de momento aun faltan dos partes de clases y objectos,espero que haya quedada clara la idea de como se heredan atributos,en las proxias partes hablaremos de lo que falta,este codigo es el final:
Enlace
No hay comentarios.:
Publicar un comentario
Los comentarios serán revisados antes de ser publicados.