- Propósito:
__all__
é uma lista (ou tupla) de strings que define quais nomes (módulos, funções, classes, variáveis) de um pacote serão expostos quando um usuário fizer uma importação do tipo "wildcard" (from pacote import *
).
- Como funciona: Se
__all__
é definido em um __init__.py
, from pacote import *
só importará os nomes listados em __all__
. Se __all__
não for definido, from pacote import *
importará todos os nomes (não começando com _
) definidos diretamente em __init__.py
.
- Melhor Prática: Usar
__all__
explicitamente em pacotes é uma boa prática, pois controla rigorosamente o que é exportado, melhorando a clareza da API do seu pacote e reduzindo o risco de poluição de namespace para quem o importa.