La sobrecarga de operadores, también conocida como “operator overloading” en inglés, es una característica en Python que te permite definir el comportamiento de operadores integrados como +, -, *, /, ==, !=, entre otros, para objetos de tus propias clases.
class Persona:
def __init__(self,nombre,ventas):
self.nombre=nombre
self.ventas=ventas
def __add__(self, other):
res=Persona("TOTAL",self.ventas+other.ventas)
return(res)
def __str__(self):
return f"Nombre: {self.nombre} Ventas: {self.ventas}"
a=Persona("Javi",23)
b=Persona("Maria",55)
c=a+b
print(a)
print(b)
print(c)
class Perro:
def sonido(self):
return “Guau!"
class Gato:
def sonido(self):
return "Miau!"
class Vaca:
def sonido(self):
return "Muu!"
# Función que utiliza el polimorfismo para acceder al método "sonido" de diferentes objetos
def hacer_sonido(animal):
return animal.sonido()
# Crear instancias de las clases
perro = Perro()
gato = Gato()
vaca = Vaca()
# Llamar a la función que utiliza polimorfismo
print(hacer_sonido(perro)) # Resultado: "Woof!"
print(hacer_sonido(gato)) # Resultado: "Miau!"
print(hacer_sonido(vaca)) # Resultado: "Muu!"