Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Desafio: Representação e Comparação de Usuários | Métodos Mágicos
Programação Orientada a Objetos em Python Avançado
course content

Conteúdo do Curso

Programação Orientada a Objetos em Python Avançado

Programação Orientada a Objetos em Python Avançado

1. Conceitos de POO
2. Herança
3. Encapsulamento
4. Polimorfismo e Abstração
5. Métodos Mágicos

book
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 e O 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.

Tarefa
test

Swipe to show code editor

  1. Crie um atributo de classe role com o valor "User" dentro da classe User.
  2. Crie um atributo de classe role com o valor "Admin" dentro da classe Admin.
  3. 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").
  4. 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.
Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 5
toggle bottom row

book
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 e O 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.

Tarefa
test

Swipe to show code editor

  1. Crie um atributo de classe role com o valor "User" dentro da classe User.
  2. Crie um atributo de classe role com o valor "Admin" dentro da classe Admin.
  3. 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").
  4. 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.
Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 5
Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
We're sorry to hear that something went wrong. What happened?
some-alt