1
resposta

Me ajuda?

Erro que está dando é esse

Traceback (most recent call last): File "C:/Users/Allas/Documents/Programação/Python/introducaoACollections/implementandoIT.py", line 52, in for conta in sorted(contas): TypeError: '<' not supported between instances of 'ContaSalario' and 'ContaSalario'

O código está logo abaixo

class ContaSalario:
def __init__(self, codigo):
    self._codigo = codigo
    self._saldo = 0

def __eq__(self, outro):
    if type(outro) != ContaSalario:
        return False

    return self._codigo == outro._codigo and self._saldo == outro._saldo

def __it__(self, outro):
    if self._saldo != outro._saldo:
        return self._saldo < outro._saldo

    return self._codigo < outro._codigo

def deposita(self, valor):
    self._saldo += valor

def extrai_saldo(conta):
    return conta._saldo

def __str__(self):
    return "[>>Codigo {} Saldo {}<<]".format(self._codigo, self._saldo)

conta_do_allas = ContaSalario(17) conta_do_allas.deposita(400)

conta_do_maycon = ContaSalario(2) conta_do_maycon.deposita(400)

conta_do_valle = ContaSalario(522) conta_do_valle.deposita(400)

contas = [conta_do_allas, conta_do_maycon, conta_do_valle]

print("----------------------")

#for conta in contas:

print(conta_do_allas > conta_do_maycon)

#for conta in sorted(contas):

print(conta)

#for conta in sorted(contas, reverse=True):

print(conta)

from operator import attrgetter

#for conta in sorted(contas, key=attrgetter("saldo", "codigo")):

print(conta)

for conta in sorted(contas): print(conta)

#print(contas)

1 resposta

Olá Allas, tudo bem?

Houve um ligeiro engano:

def __it__(self, outro):
    if self._saldo != outro._saldo:
        return self._saldo < outro._saldo

def __lt__(self, outro):
         return self._saldo < other._saldo

Você trocou o l (lata) por i (igreja).

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software