1
resposta

Ajuda por favor

Meu codigo esta dando erro, alguem poderia me ajudar?

class Conta:

    def _init_(self, numero, titular, saldo, limite,):
        print("Contruindo objeto ... {}".format(self))
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite


        def extrato(self):
            print("saldo do {} do titular {}".format(self.saldo, self.titular))



from conta import Conta
conta = Conta(123, "Nico", 55.5, 1000.0)
Contruindo objeto ... <conta.Conta object at 0x000001D25989E730>
conta2 = Conta(321, "Marco", 100.0, 1000.0)
Contruindo objeto ... <conta.Conta object at 0x000001D25989EA60>
conta.extrato()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'Conta' object has no attribute 'extrato'
1 resposta

Oii Thais! Tudo certinho?

Analisando a identação do seu código, percebemos que o método extrato está sendo criado dentro da função construtora __init__, observe:

Código da aluna destacando que o método extrato está dentro da função init

No entanto, os métodos da sua classe, devem ficar apenas dentro da classe e fora da função construtora, para que, ao criar um objeto, você consiga utilizar corretamente esse método. Portanto, você pode fazer assim:

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        print("Construindo objeto ... {}".format(self))
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

    def extrato(self):
        print("Saldo {} do titular {}".format(self.saldo, self.titular))

Dessa forma, tudo deve funcionar certinho quando for criar um objeto e utilizar o método extrato :)

Qualquer dúvida estou por aqui. Bons estudos!