1
resposta

Terminal retornando valor "none" ao printar.

Utilizo VSCode por me familiarizar melhor, porém além de não conseguir utilizar o "from conta import Conta", estou tendo um problema, pois quando rodo o código no terminal, ele me retorna o esperado, mas ao mesmo tendo me retorna vários valores "none", precisava de ajuda para remover e assim tornar melhor a leitura dos resultados no terminal. Abaixo segue o Script.

class Conta:
    def __init__(self, numero, titular, saldo, limite):
        print("Construindo Objeto ... {}".format(self)) # O self sabe o endereço do nosso codigo.
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

    def extrato(self):
        print("Saldo {} do titular {}.".format(self.saldo, self.titular))

    def deposita(self, valor):
        self.saldo += valor

    def saca(self, valor):
        self.saldo -= valor

conta = Conta(123, "Bruno", 55.0, 1000) #Ao criar uma varíavel, ela passar a referência para o nosso objeto.
conta2 = Conta(321, "Marco", 100, 1000)

print(conta.extrato()) #Para acessar um atributo devemos usar referencia.atributo, nesse caso, conta.titular.
print(conta2.extrato())
print(conta.deposita(100))
print(conta2.saca(50))
print(conta.extrato()) #Para acessar um atributo devemos usar referencia.atributo, nesse caso, conta.titular.
print(conta2.extrato())
1 resposta

Olá Wedney, tudo bem?

Quando você usa a função "print", ela precisa receber um valor para imprimir o resultado no terminal. No seu caso a função imprimiu None porque você não retornou nenhum valor dos métodos extrato e saca, portanto preciso fazer o "return". No método extrato é a mesma situação, nem fazer fazer um novo print, pois você já está utilizando o print no próprio método.

Quando a importação, no diretório onde está o arquivo conta.py, veja se funciona adicionando o arquivo init.py (duplo underscore), pois assim o interpreter Python irá entender que aquele folder é uma módulo.

class Conta:
    def __init__(self, numero, titular, saldo, limite):
        # print("Construindo Objeto ... {}".format(self)) # O self sabe o endereço do nosso codigo.
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

    def extrato(self):
        print("Saldo {} do titular {}.".format(self.saldo, self.titular))

    def deposita(self, valor):
        self.saldo += valor
        return self.saldo

    def saca(self, valor):
        self.saldo -= valor
        return self.saldo

conta = Conta(123, "Bruno", 55.0, 1000) #Ao criar uma varíavel, ela passar a referência para o nosso objeto.
conta2 = Conta(321, "Marco", 100, 1000)

conta.extrato() #Para acessar um atributo devemos usar referencia.atributo, nesse caso, conta.titular.
conta2.extrato()

print(conta.deposita(100))
print(conta2.saca(50))

conta.extrato() #Para acessar um atributo devemos usar referencia.atributo, nesse caso, conta.titular.
conta2.extrato()