2
respostas

Duvida de Herança

Fala pessoal, blz!

To iniciando a minha jornada como dev e estava desenvolvendo este código para praticar, mas ele não está acessando os atributo de saldo para as funções.

Está bem simples ainda mais gostaria de entender o porque não está funcionando..


class Pessoa:

    def __int__(self, nome, sobrenome, cpf, idade,):
        self.nome = nome
        self.sobrenome = sobrenome
        self.cpf = cpf
        self.idade = idade


class Conta(Pessoa):
    def __init__(self, nome, sobrenome, cpf, idade, agencia, numeroDaConta, saldo):
        super().__int__(nome, sobrenome, cpf, idade)
        self.agencia = agencia
        self.numeroDaConta = numeroDaConta
        self.saldo = saldo


class FuncoesConta(Conta, Pessoa):
    def __init__(self, nome, sobrenome, cpf, idade, agencia, numeroDaConta, saldo, sacar, deposita, transfere):
        super().__int__(nome, sobrenome, cpf, idade, agencia, numeroDaConta, saldo)
        self.sacar = sacar
        self.deposita = deposita
        self.transfere = transfere

    def sacarDinheiro(valor):
        if self.saldo >= valor:
            self.saldo -= valor
        else:
            return f'Não é possivel sacar'

    def depositarDinheiro(valor):
        self.saldo += valor


Cliente = Conta("Joãozinho", "Silva", "123.456.789.00", 21, "456", "6565", 100)

print(Cliente.saldo)
Cliente.depositarDinheiro(10)
print(Cliente.saldo)
2 respostas

E ai amigo, blz?

Pelo que eu entendi nesse seu código, o Cliente recebe uma instância de Conta e essa estende de pessoa. Porém você está tentando acessar através dela um método da classe FuncoesConta.

Esse método FuncoesConta está estendo de Conta, mas acho que deveria ser o contrário para você poder usar o método depositarDinheiro. Conta deveria estender de Pessoa e FuncoesConta.

Do jeito que está, o Cliente não tem esse método.

Manda aqui o resultado, se deu certo ou não ;)

Digitou o nome das funções __int__ ao invés de __init__.