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?
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?
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.
__init__.py
(pode estar vazio) na pasta.Acompanhe comigo um exemplo prático:
1 - 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!
Muito obrigado. Excelente.