Conteúdo do Curso
Programação Orientada a Objetos em Python Avançado
Programação Orientada a Objetos em Python Avançado
Desafio: Representação e Comparação de Usuários
Existem muitos métodos mágicos em Python, não consideramos todos eles, mas outros não são usados com tanta frequência.
Vamos voltar ao seu código. Sua classe User
não tem representação, e você não pode imprimir informações do usuário usando a construção print(user)
. Além disso, há momentos em que você precisa verificar um nome de usuário ou ID de usuário com a instância do usuário (conta) que realizou ações em sua aplicação.
Nota
Os comentários
O novo código está abaixo
eO novo código está acima
vão ajudá-lo a encontrar um novo código para edição.Além disso, você precisa adicionar atributos de classe ao código existente.
Swipe to show code editor
- Crie um atributo de classe
role
com o valor"User"
dentro da classeUser
. - Crie um atributo de classe
role
com o valor"Admin"
dentro da classeAdmin
. - Defina o método mágico de representação dentro da classe
User
. Este método deve retornar a string"{role}: {username}"
.
Por exemplo ("Admin: greatest.admin"
). - Defina o método mágico de comparação para a operação
==
. Este método deve comparar:- se os dados recebidos são uma instância de
User
- comparar o username da instância e o username da instância recebida. - se os dados recebidos são uma string - comparar o username da instância e a string recebida.
- se os dados recebidos têm outro tipo de dado - o método deve retornar
False
.
- se os dados recebidos são uma instância de
Obrigado pelo seu feedback!
Desafio: Representação e Comparação de Usuários
Existem muitos métodos mágicos em Python, não consideramos todos eles, mas outros não são usados com tanta frequência.
Vamos voltar ao seu código. Sua classe User
não tem representação, e você não pode imprimir informações do usuário usando a construção print(user)
. Além disso, há momentos em que você precisa verificar um nome de usuário ou ID de usuário com a instância do usuário (conta) que realizou ações em sua aplicação.
Nota
Os comentários
O novo código está abaixo
eO novo código está acima
vão ajudá-lo a encontrar um novo código para edição.Além disso, você precisa adicionar atributos de classe ao código existente.
Swipe to show code editor
- Crie um atributo de classe
role
com o valor"User"
dentro da classeUser
. - Crie um atributo de classe
role
com o valor"Admin"
dentro da classeAdmin
. - Defina o método mágico de representação dentro da classe
User
. Este método deve retornar a string"{role}: {username}"
.
Por exemplo ("Admin: greatest.admin"
). - Defina o método mágico de comparação para a operação
==
. Este método deve comparar:- se os dados recebidos são uma instância de
User
- comparar o username da instância e o username da instância recebida. - se os dados recebidos são uma string - comparar o username da instância e a string recebida.
- se os dados recebidos têm outro tipo de dado - o método deve retornar
False
.
- se os dados recebidos são uma instância de
Obrigado pelo seu feedback!