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.