1
resposta

[Dúvida] meu método transferir esta static

aparece o seguinte aviso def trasferir(self, valor, origem, destino): origem.sacar(valor) destino.depositar(valor) -> none

e no terminal o método não esta disponível

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        print(f"Construindo objeto ... {self}")
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print(f"Saldo de {self.__saldo} do titular {self.__titular}")

    def depositar(self, valor):
        self.__saldo += valor

    def sacar(self, valor):
        if valor > self.__saldo:
            print("Saldo insuficiênte")
        else:
            self.__saldo -= valor

    def trasferir(self, valor, origem, destino):
        origem.sacar(valor)
        destino.depositar(valor)
1 resposta

Oi, Sabrina! Tudo bem com você?

No caso, você deve fazer alguns ajustes no seu método trasferir, esses ajustes são os seguintes:

  1. Nos parâmetros que devem ser passados, você deve ter apenas os campos: self, valor, destino;

  2. No método, na linha origem.sacar(valor), você deve alterar para ficar assim: self.sacar(valor).

Essas alterações vão fazer que ao usar esse método de um objeto, você já estará fazendo a transferência do valor dele para outra conta, conta esse que foi passada no campo destino. O código corrigido fica assim:

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        print(f"Construindo objeto ... {self}")
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print(f"Saldo de {self.__saldo} do titular {self.__titular}")

    def depositar(self, valor):
        self.__saldo += valor

    def sacar(self, valor):
        if valor > self.__saldo:
            print("Saldo insuficiênte")
        else:
            self.__saldo -= valor

    def trasferir(self, valor, destino):
        self.sacar(valor)
        destino.depositar(valor)

Espero ter ajudado e caso tenha mais algum problema ou pergunta, estarei à disposição para ajudá-la.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.