Mixins
Mixins são exemplos excepcionais de polimorfismo, pois permitem alterar o comportamento e aprimorar a funcionalidade de outra classe. Eles não são feitos para serem usados de forma independente e não possuem um contexto lógico distinto.
Funcionalidades extras podem tanto substituir a funcionalidade base quanto complementá-la.
Vamos considerar um exemplo:
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()
pode ter uma implementação diferente.
Mixins permitem a responsabilidade de alterar a funcionalidade nas classes.
Nota
O nome do Mixin deve terminar com
Mixin
. Este é o acordo entre os programadores.Os Mixins devem estar no início da ordem de herança.
class SomeClass(FirstMixin, LastMixin, FirstParent, LastParent)
Você pode usar mixins para adicionar novas funcionalidades em classes.
Os Mixins são considerados código sujo porque utilizam atributos e métodos que não são especificamente destinados a eles próprios (já que os mixins são projetados para outras classes). Portanto, usar mixins é geralmente considerado uma má prática, e é melhor evitá-los e usá-los apenas quando necessário.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.78
Mixins
Deslize para mostrar o menu
Mixins são exemplos excepcionais de polimorfismo, pois permitem alterar o comportamento e aprimorar a funcionalidade de outra classe. Eles não são feitos para serem usados de forma independente e não possuem um contexto lógico distinto.
Funcionalidades extras podem tanto substituir a funcionalidade base quanto complementá-la.
Vamos considerar um exemplo:
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()
pode ter uma implementação diferente.
Mixins permitem a responsabilidade de alterar a funcionalidade nas classes.
Nota
O nome do Mixin deve terminar com
Mixin
. Este é o acordo entre os programadores.Os Mixins devem estar no início da ordem de herança.
class SomeClass(FirstMixin, LastMixin, FirstParent, LastParent)
Você pode usar mixins para adicionar novas funcionalidades em classes.
Os Mixins são considerados código sujo porque utilizam atributos e métodos que não são especificamente destinados a eles próprios (já que os mixins são projetados para outras classes). Portanto, usar mixins é geralmente considerado uma má prática, e é melhor evitá-los e usá-los apenas quando necessário.
Obrigado pelo seu feedback!