Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Mezclas | Polimorfismo y Abstracción
Programación Orientada a Objetos en Python a Fondo
course content

Contenido del Curso

Programación Orientada a Objetos en Python a Fondo

Programación Orientada a Objetos en Python a Fondo

1. Conceptos de POO
2. Herencia
3. Encapsulamiento
4. Polimorfismo y Abstracción
5. Métodos Mágicos

book
Mezclas

Los mixins son ejemplos excepcionales de polimorfismo, ya que permiten alterar el comportamiento y mejorar la funcionalidad de otra clase. No están pensados para ser independientes y carecen de un contexto lógico diferenciado.

Las funciones adicionales pueden sustituir a las funciones básicas o complementarlas.

Veamos un ejemplo:

12345678910111213141516171819202122232425262728293031323334
class AdminAccessMixin: access = "Admin" def check_access(self): print(f"The {self.username} has Admin Access Type") class BlockedAccessMixin: access = "Blocked" def check_access(self): print(f"The {self.username} is blocked") class User: access = "User" def __init__(self, username, password): self.username = username self.password = password def check_access(self): print(f"The {self.username} has default access") class BlockedUser(BlockedAccessMixin, User): pass class Admin(AdminAccessMixin, User): pass user = User("bob111", "bob123secret") admin = Admin("top.admin", "secret_password") blocked_user = BlockedUser("hacker911", "qzdfaswe") for person in [user, admin, blocked_user]: person.check_access()
copy

Cada método check_access() puede tener una implementación diferente.

Mixins permiten responsabilidad para cambiar la funcionalidad en las clases.

Nota

  • El nombre del mixin debe terminar con Mixin. Este es el acuerdo de los programadores.

  • Los mixins deben estar al principio del orden de herencia.
    ClaseCiertaClase(PrimerMezcla, UltimoMezcla, PrimerPadre, UltimoPadre)`.

  • Puedes utilizar mixins para añadir nuevas funcionalidades en las clases.

  • Los mixins se consideran código sucio porque utilizan atributos y métodos que no están específicamente pensados para ellos mismos (ya que los mixins están diseñados para otras clases). Por lo tanto, usar mixins se considera generalmente una mala práctica, y es mejor evitarlos y usarlos sólo cuando sea necesario.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2
We're sorry to hear that something went wrong. What happened?
some-alt