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

Estruturação do código

Ao estruturar o código deixando as classes em arquivos distintos, surge a dúvida: o arquivo precisa estar na mesma pasta de arquivos que o código que vai utilizá-lo?

2 respostas

Bom dia, Alex!

Não, os arquivos não precisam estar na mesma pasta, mas é importante que estejam organizados de uma maneira que o Python consiga encontrá-los. Para importar classes de arquivos que estão em pastas diferentes, você pode usar pacotes e módulos.

  • Um módulo é um único arquivo Python (.py) que contém definições e implementações de classes, funções, variáveis, etc. Basicamente, qualquer arquivo Python é um módulo.
  • Um pacote é uma coleção de módulos organizados em diretórios que fornecem uma estrutura hierárquica. Um pacote é identificado pela presença de um arquivo __init__.py (pode estar vazio) na pasta.

Acompanhe comigo um exemplo prático:

1 - Estrutura de diretórios:

Imagem que mostra a estrutura de diretórios

2 - Conteúdo do minha_classe.py:

class MinhaClasse:
    def __init__(self, valor):
        self.valor = valor

    def mostrar_valor(self):
        print(f'O valor é: {self.valor}')

3 - Conteúdo do main.py:

from modulo.minha_classe import MinhaClasse

obj = MinhaClasse(10)
obj.mostrar_valor()

No exemplo acima, minha_classe.py está dentro da pasta modulo, e main.py está na raiz do projeto. Para que o Python consiga encontrar minha_classe.py, você deve usar a sintaxe from modulo.minha_classe import MinhaClasse. Importante: O arquivo __init__.py dentro da pasta modulo é necessário para que o Python reconheça essa pasta como um pacote. Mesmo que o arquivo esteja vazio, ele deve estar presente.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

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

Muito obrigado. Excelente.