1
resposta

bom dia, equipe, onde estou errando ?

from operator import attrgetter

class ContaSalario:

def __init__(self, codigo, outro):
    self._codigo = codigo
    self._outro = outro
    self._saldo = 0

def __eq__(self, outro):
    if type(outro) != ContaSalario:
        return False
    return self._codigo == outro._codigo and self._saldo == outro._saldo

def __lt__(self, outro):
    if conta_do_guilherme < conta_da_daniela:
        print(True)
    else:
        print(False)
    return self._saldo < self._outro

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

def extrai_saldo(contas):
    return contas._saldo


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

conta_do_guilherme = ContaSalario(17) conta_do_guilherme.deposita(500) conta_da_daniela = ContaSalario(3) conta_da_daniela.deposita(1000) conta_paulo = ContaSalario(133) conta_paulo.deposita(510)

contas = [conta_do_guilherme, conta_da_daniela, conta_paulo]

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

#Os saldo foram colocados em ordem de saldo, do menor para o maior for conta in sorted(contas, key=attrgetter("_saldo")): print(conta) print()

#Aqui é impresso sem estar ordenado for conta in contas: print(conta)

1 resposta

Oi Jorge, tudo bem?

O erro esta no __init__, você deve retirar esse segundo parâmetro outro e deixar o método assim:

def __init__(self, codigo):

Ou então você deve passar esse "outro" na hora de instanciar essa classe...

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