Orientação a Objetos: Considere o seguinte programa em Python: class Data: def __init__(self, dia, mes, ano): self.dia = dia self.mes = mes self.ano = ano def __eq__(self, other): return self.dia == other.dia and self.mes == other.mes and self.ano == other.ano Assinale a alternativa correta:

Questão

Considere o seguinte programa em Python:

class Data: def init(self, dia, mes, ano): self.dia = dia self.mes = mes self.ano = ano

def __eq__(self, other):
    return self.dia == other.dia and self.mes == other.mes and self.ano == other.ano

Assinale a alternativa correta:

Alternativas

a) Dois objetos desta classe d1 e d2 poderão ser comparados por meio de: d1 <= d2.

b) Dois objetos desta classe d1 e d2 poderão ser comparados por meio de: d1 == d2.

97%

c) Dois objetos desta classe d1 e d2 poderão ser comparados por meio de: d1 < d2.

d) Dois objetos desta classe d1 e d2 poderão ser comparados por meio de: d1 > d2.

e) Dois objetos desta classe d1 e d2 poderão ser comparados por meio de: d1 >= d2.

Explicação

O programa define a classe Data com os atributos dia, mes e ano. Além disso, a classe sobrescreve (implementa) o método especial __eq__(self, other), que é exatamente o método usado pelo Python para avaliar a operação de igualdade ==.

  • Quando fazemos d1 == d2, o Python chama d1.__eq__(d2).
  • Como __eq__ foi definido, a comparação == entre dois objetos Data passa a funcionar e retorna True quando dia, mês e ano forem iguais, e False caso contrário.

Já os operadores de ordem (<, <=, >, >=) dependem de outros métodos especiais (como __lt__, __le__, __gt__, __ge__). Como eles não foram implementados no código, não é garantido que essas comparações funcionem (em geral, resulta em erro do tipo TypeError).

Alternativa correta: (b).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.