Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Problemas com a importação

Eu fiz o código exatamente como foi feito em aula, mas não está funcionando exatamente. Quando eu peço para mostrar no mesmo arquivo que eu desenvolvi a classe funciona normalmente, mas quando eu importo não funciona: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade Poderiam me ajudar?

2 respostas
solução!

experimenta colocar na sua função, na parte onde vem o "print", ao invés de usa o format, usar o sep. Desta maneira:

print(self.dia,self.mes,self.ano, sep='/'), fica mais limpo.

e creio que o problema no seu código esta na importação. Você esta importando a pasta que esta seu arquivo, depois o arquivo inteiro. experimente colocar desta maneira:

from Datas import Datas

o primeiro "Datas" refere-se ao nome do arquivo e o segundo "Datas" a classe. Coloque ambos arquivos na mesma pasta.

Espero ter ajudado

Olá, Leonardo! Tudo bem?

Primeiramente, certifique-se de que a estrutura de diretórios está correta e que as pastas estão no mesmo diretório. De acordo com a descrição que você forneceu, a estrutura de diretórios está assim:

- Alura
  - datas
    - Datas.py
  - Joguinho
    - PrincipalDatas.py

Após isso, verifique se o nome do arquivo e a classe estão corretos, garantinho que o arquivo Datas.py contém a definição da classe Datas com a letra maiúscula correta, e que não há erros de digitação no nome do arquivo ou da classe. Percebi que você importou o arquivo com datas escrito com letras minúsculas ao invés da primeira maiúscula.

De acordo com a imagem que você colocou, o arquivo onde você criou a classe não está no mesmo diretório do arquivo em que você está fazendo a importação, portanto, você precisará especificar o caminho completo para o arquivo na importação.

Um ponto que deve ser considerado é que o arquivo em que você está fazendo a importação tem o mesmo nome que a classe que você está importando. Isso pode causar conflitos e impedir o correto funcionamento da importação. Nesse caso, você pode renomear o arquivo para datas com letras minúsculas ou utilizar a sintaxe "from nome_do_arquivo import nome_da_classe" para evitar conflitos.

Para especificar o diretório no import do Python, você pode usar o conceito de pacotes e módulos. Um pacote é uma pasta que contém arquivos Python (módulos) e um arquivo especial chamado __init__.py que é gerado automaticamente quando você cria uma nova pasta e a nomeia como um pacote. Esse arquivo é usado para indicar ao Python que a pasta é um pacote e pode conter módulos que podem ser importados.

Os módulos dentro do pacote podem ser importados usando a notação de ponto. Você está utilizando a seguinte estrutura de diretórios (o nome do arquivo já alterado para evitar conflitos):

- Alura
  - datas
    - __init__.py
    - datas.py
  - Joguinho
    - __init__.py
    - PrincipalDatas.py

O arquivo __init__.py é necessário para que o Python reconheça a pasta como um pacote. Ele pode estar vazio ou conter código de inicialização do pacote (opcional). Agora, para importar a classe Datas de dentro do arquivo PrincipalDatas.py, você pode fazer da seguinte forma:

from datas.datas import Datas

Onde:

  • Alura é o nome da pasta que contém as pastas datas e jogos.
  • datas é a pasta que contém o arquivo datas.py.
  • Datas é o nome da classe dentro do arquivo Datas.py.

Isso permitirá que você importe e utilize a classe Datas no arquivo PrincipalDatas.py. Lembre-se de que o nome dos pacotes, pastas e arquivos devem ser escritos corretamente, respeitando letras maiúsculas/minúsculas e nomes válidos para identificadores Python. Além disso, certifique-se de que a estrutura de diretórios esteja correta conforme mostrado acima.

Espero que essas dicas possam te ajudar a resolver o problema com a importação da classe. Se tiver mais alguma dúvida, é só me dizer!

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software