Skip to content

Instantly share code, notes, and snippets.

@j2deme
Last active October 20, 2023 17:52
Show Gist options
  • Save j2deme/7650272532ed00e8cb5ba115e7717fc2 to your computer and use it in GitHub Desktop.
Save j2deme/7650272532ed00e8cb5ba115e7717fc2 to your computer and use it in GitHub Desktop.
Herencia Simple, Múltiple y en Cascada
class Animal:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def comer(self):
print(f'{self.nombre} esta comiendo')
def dormir(self):
print(f'{self.nombre} esta durmiendo')
def hacer_sonido(self):
print(f'{self.nombre} esta haciendo sonidos')
def __del__(self):
print(f'{self.nombre} se fue al cielo de los animales')
from animal import Animal
class Gato(Animal):
def __init__(self, nombre, edad, vidas):
super().__init__(nombre, edad)
self.vidas = vidas
def hacer_sonido(self):
super().hacer_sonido()
print("Miau! 🐈")
#print(f'{self.nombre} esta maullando')
def sobrevive(self):
if self.edad > 15 or self.vidas > 1:
self.vidas -= 1
self.edad = 1
return self.vidas > 0
def __del__(self):
print(f'{self.nombre} se fue al cielo de los gatos')
from perro import Perro
from gato import Gato
from animal import Animal
def main():
perro = Perro("Firulais", 5, "Urbano")
gato = Gato("Garfield", 3, 7)
perro.comer()
perro.dormir()
perro.hacer_sonido()
print(f'Es cachorro? {perro.es_cachorro()}')
gato.comer()
gato.hacer_sonido()
print(f'Vidas? {gato.vidas}')
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Vidas? {gato.vidas}')
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Vidas? {gato.vidas}')
gato.edad = 16
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Vidas? {gato.vidas}')
print(f'Sobrevive? {gato.sobrevive()}')
print(f'Vidas? {gato.vidas}')
del gato
del perro
pikachu = Animal("Pikachu", 2)
pikachu.hacer_sonido()
pikachu.comer()
pikachu.dormir()
del pikachu
if __name__ == "__main__":
main()
from murcielago import Murcielago
from ornitorrinco import Ornitorrinco
def main():
dracula = Murcielago(nombre="Drácula", especie="Vampiro", edad=500)
dracula.comer()
dracula.hacer_sonido()
dracula.amamantar()
dracula.dormir()
dracula.volar()
perry = Ornitorrinco(nombre="Perry", edad=7)
print(f'{perry.nombre} ha puesto {perry.NUMERO_HUEVOS} huevos')
perry.poner_huevo()
perry.poner_huevo()
perry.poner_huevo()
print(f'{perry.nombre} ha puesto {perry.NUMERO_HUEVOS} huevos')
print(f'{perry.especie}')
if __name__ == "__main__":
main()
from animal import Animal
class Mamifero(Animal):
def __init__(self, nombre, edad, especie="Mamífero"):
super().__init__(nombre, edad)
self.especie = especie
def amamantar(self):
print("🍼")
def parir(self):
print("👶🏻")
from mamifero import Mamifero
from volador import Volador
class Murcielago(Mamifero, Volador):
pass
from mamifero import Mamifero
from oviparo import Oviparo
from venenoso import Venenoso
class Ornitorrinco(Mamifero, Oviparo, Venenoso):
def __init__(self, nombre, edad):
super().__init__(nombre, edad)
self.NUMERO_HUEVOS = 0
class Oviparo:
NUMERO_HUEVOS = 0
def poner_huevo(self):
print("🥚")
self.NUMERO_HUEVOS += 1
from animal import Animal
class Perro(Animal):
def __init__(self, nombre, edad, raza):
super().__init__(nombre, edad)
self.raza = raza
def hacer_sonido(self):
super().hacer_sonido()
print("Woof! 🐕")
def es_cachorro(self):
return self.edad < 2
def __del__(self):
print(f'{self.nombre} se fue al cielo de los perros')
class Venenoso:
def inyectar_veneno(self):
print("💉")
class Volador:
def volar(self):
print("Volar")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment