1
resposta

Erro ao executar o código

Ao iniciar meu código:

import teste from Conta
conta = Conta(123, 'Carol', 55.55, 1000.0)

Apresenta o seguinte erro:

Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\code.py", line 63, in runsource
    code = self.compile(source, filename, symbol)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\codeop.py", line 153, in __call__
    return _maybe_compile(self.compiler, source, filename, symbol)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\codeop.py", line 73, in _maybe_compile
    return compiler(source, filename, symbol)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\codeop.py", line 118, in __call__
    codeob = compile(source, filename, symbol, self.flags, True)
  File "<input>", line 1
    import teste from Conta
                 ^^^^
SyntaxError: invalid syntax

O meu código da conta esta montado assim:

class Conta:
    def __init__(self, numero, titular, saldo, limite):
        print("Construindo objeto ... {}".format(self))
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

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

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

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

Já o código de teste esta assim:


def cria_conta(numero, titular, saldo, limite):
    conta = {"numero": numero, "titular": titular, "saldo": saldo, "limite": limite}
    return conta

def deposita(conta, valor):
    conta["saldo"] += valor

def saca(conta, valor):
    conta["saldo"] -= valor

def extrato(conta):
    print("Saldo é {}".format (conta["saldo"]))

O que pode ser?

1 resposta

Olá, Isabel! Na verdade, a sintaxe correta para importar em Python é from module import class. No seu caso, parece que você está tentando importar a classe Conta do módulo teste. Então, o correto seria:

from teste import Conta
conta = Conta(123, 'Carol', 55.55, 1000.0)

Entretanto, pelo que você compartilhou, parece que a classe Conta e a função cria_conta estão em arquivos separados. Se a classe Conta está no arquivo teste.py, você precisa garantir que o arquivo esteja no mesmo diretório do script que você está tentando executar, ou seja, o arquivo que contém a linha from teste import Conta.

Além disso, percebi que você tem um arquivo de teste com funções que manipulam um dicionário, simulando o comportamento de uma conta. No entanto, você também tem uma classe Conta que possui métodos semelhantes. Isso pode gerar confusão.

Se você deseja trabalhar com a classe Conta, sugiro que você utilize os métodos da própria classe para realizar operações na conta, como por exemplo:

conta = Conta(123, 'Carol', 55.55, 1000.0)
conta.deposita(200)
conta.saca(50)
conta.extrato()

Espero ter ajudado e bons estudos!