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:
12345678910111213141516171819202122232425262728293031323334class 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()
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.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.78
Mezclas
Desliza para mostrar el menú
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:
12345678910111213141516171819202122232425262728293031323334class 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()
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.
¡Gracias por tus comentarios!