Wenderson Lisboa Posted April 5, 2023 at 10:58 PM Report #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
Solution thoga31 Posted April 6, 2023 at 12:29 AM Solution Report #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!
Wenderson Lisboa Posted April 7, 2023 at 12:28 AM Author Report #630629 Posted April 7, 2023 at 12:28 AM Muito obrigado, realmente é isso
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