Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro no console python do pycharm

qualquer ação que eu execulto aparece mensagens parecidas como a seguinte:

Traceback (most recent call last): File "<input>", line 1, in <module> File "C:\Users\User\Desktop\Alura\Python3 O.B\2\conta.py", line 13, in deposita print("saldo atual{}".format(self.saldo)) AttributeError: 'Conta' object has no attribute 'saldo'

nesse caso eu tentei usar o

 from conta import Conta
conta1 = Conta(1,"Enzo",100.0,1000.0)
conta1.deposita(10)

PS: Já marquei o diretório da pasta que usa o conta.py como Sources Root.

código completo por via das dúvidas:

class Conta():
    def __init__(self,numero,titular,saldo,limite):
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print("O titular da conta é {} e tem o saldo de {}".format(self.titular, self.saldo))

    def deposita(self,valor):
        self.__saldo += valor
        print("saldo atual{}".format(self.saldo))

    def saca(self,valor):
        self.__saldo -= valor
        print("saldo atual{}".format(self.saldo))

    def tranfere(self,valor,origem,destino):
        origem.saca(valor)
        destino.deposita(valor)
1 resposta
solução!

Oii Daniel, como você está?

Isso está acontecendo porque o nome do atributo é "__saldo", porém, no método "deposita", mais especificamente no format, você está utilizando o nome "saldo" e esse atributo não existe, o que temos é __saldo. Para corrigir, basta modificar a linha do print para utilizar o atributo correto, veja como fica:

class Conta():
    def __init__(self,numero,titular,saldo,limite):
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print("O titular da conta é {} e tem o saldo de {}".format(self.titular, self.saldo))

    def deposita(self,valor):
        self.__saldo += valor
        print("saldo atual{}".format(self.__saldo))

    def saca(self,valor):
        self.__saldo -= valor
        print("saldo atual{}".format(self.__saldo))

    def tranfere(self,valor,origem,destino):
        origem.saca(valor)
        destino.deposita(valor)

Qualquer dúvida estou por aqui, tá bom?

Abraços e bons estudos!