Controlar imports do módulo

Referência rapida de como usar __init__.py para importar seus ...

latrova commited 1 ano, 7 meses ago
×
Controle - Leia como quiser

Vamos imaginar a seguinte estrutura

projeto/
|_ main.py
|_ A
|  |_ __init__.py
|  |_ ClasseA.py
|
|_ B
   |_ __init.__.py
   |_ ClasseB.py

__init__.py vazio

Dessa forma, se você precisar utilizar ambas as classes no __main__.py , você terá que realizar o import dessa forma:

from A.ClasseA import ClasseA
from B.ClasseB import ClasseB

Importando o nome

O que pode ficar bem repetitivo, então no __init__.py de A faremos o seguinte:

from .ClasseA import ClasseA
__all__ = ["ClasseA"]

Agora conseguimos acessar dessa forma:

main.py

from A import ClasseA
Bem mais direto e simples, é só repetir o processo para B em seu respectivo __init__.py

Alterando o nome importado

Note que o __all__ deve ser sempre uma lista de strings com o nome do que você importou. Se eu quisesse alterar o nome importado, eu poderia:

__init.py__

from .ClasseA import ClasseA as CustomA
__all__ = ["CustomA"]

main.py

from A import CustomA
blog comments powered by Disqus