Wenderson Lisboa Posted April 5, 2023 at 10:58 PM Report Share #630618 Posted April 5, 2023 at 10:58 PM (edited) Boa noite amigos, estou com o seguinte script: import datetime class Conta: def __init__(self, numero, titular, saldo, limite = 1000.0): self.numero = numero self.titular = titular self.saldo = saldo self.limite = limite self.historico = Historico() def deposita(self, valor): self.saldo += valor self.historico.transacoes.append(f"Deposito de : {valor}") def sacar(self, saldo2, valor): saldo2 = self.saldo if(saldo2 < valor): return print('Saldo insuficiente') else: self.saldo -= valor self.historico.transacoes.append(f"Saque de : {valor}") def extrato(self): print(f'Numero nº {self.numero} \n Titular: {self.titular} \n Saldo: R$ {self.saldo}') self.historico.transacoes.append(f"Seu saldo é de: {self.saldo}") def transfere(self, valor, destino): retirou = self.sacar(valor) if(retirou == False): return False else: destino.deposita(valor) self.historico.transacoes.append(f"Transferencia de {valor} para conta de {destino.numero}") return True def criar_conta(numero, titular, saldo, limite): conta = {"numero": numero,"titular": titular, "saldo": saldo, "limite": limite} return conta class Cliente: def __init__(self, nome, sobrenome, cpf): self.nome = nome self.sobrenome = sobrenome self.cpf = cpf class Historico: def __init__(self): self.data_abertura = datetime.datetime.today() self.transacoes = [] def imprime(self): print(f'Data de abertura: {self.data_abertura} ') print('Transações: ') for t in self.transacoes: print(' - ', t) cliente1 = Cliente('João', 'Oliveira', '1111111-11') cliente2 = Cliente('Marcos','Azevedo', '2222222-22') conta1 = Conta('123-4', cliente1, 1000.0) conta2 = Conta('123-5', cliente2, 1000.0) conta1.deposita(500.0) conta1.sacar(50.0) conta1.transfere(conta2, 200.0) conta1.extrato conta1.historico.imprime() Sempre me retorna esse Erro: sacar() missing 1 required positional argument: 'valor' Por favor me digam onde estou errando. De já agradeço Edited May 10, 2023 at 09:43 PM by pwseo formatação, assunto mais descritivo Link to comment Share on other sites More sharing options...
Solution thoga31 Posted April 6, 2023 at 12:29 AM Solution Report Share #630619 Posted April 6, 2023 at 12:29 AM O erro é auto-explicativo. O método sacar() recebe dois argumentos, saldo2 e valor: def sacar(self, saldo2, valor): E quando invocas o método, só lhe passas um único argumento: conta1.sacar(50.0) O primeiro argumento é saldo2, ao qual passas o valor 50.0, e o segundo argumento é valor, ao qual nada passas. Daí o erro "sacar() missing 1 required positional argument: 'valor'": o método requer 1 argumento de nome valor. Ou passas dois argumentos pela ordem pretendida, ou corriges a função caso não seja pretendido receber dois argumentos mas sim apenas um. Cumprimentos. Knowledge is free! Link to comment Share on other sites More sharing options...
Wenderson Lisboa Posted April 7, 2023 at 12:28 AM Author Report Share #630629 Posted April 7, 2023 at 12:28 AM Muito obrigado, realmente é isso Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now