Pacotes Python: Estrutura, Importação e Boas Práticas
Pacotes Python
Aprenda a organizar uma base de código crescente com pacotes Python e como importar seus próprios módulos ou de terceiros de forma eficiente.
Vídeo: Pacotes Python – Organize Seu Código
O Que São Pacotes?
Assim como agrupamos arquivos em pastas no disco para organização, o Python usa pacotes para agrupar módulos relacionados. Um pacote é simplesmente um diretório que contém um arquivo __init__.py — isso informa ao Python para tratar a pasta como um namespace.
Quando um projeto cresce, manter módulos semelhantes juntos em um pacote mantém o projeto gerenciável e auto-documentado. Pacotes também podem conter subpacotes, espelhando a forma como diretórios podem ser aninhados.
Por exemplo, um projeto de jogo pode ter esta estrutura:

Importando Módulos de um Pacote
Módulos são importados com a notação de ponto (.). Para importar start.py do pacote Game/Level, use:
import Game.Level.start
Se start.py define uma função select_difficulty(), chame-a com o namespace completo:
Game.Level.start.select_difficulty(2)
Para reduzir verbosidade, você pode importar o módulo para o namespace local:
from Game.Level import start
Agora select_difficulty pode ser acessado como:
start.select_difficulty(2)
Para importações ainda mais diretas, traga a função diretamente:
from Game.Level.start import select_difficulty
Então chame-a simplesmente:
select_difficulty(2)
Embora concisa, importar no nível de função pode levar a colisões de nomes se diferentes módulos exporem símbolos com nomes idênticos. Usar o caminho completo do pacote mantém o namespace explícito e mais seguro.
O Python resolve importações de pacotes pesquisando os diretórios listados em sys.path, da mesma forma que faz para módulos regulares.
python
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Operadores em Python: Guia Completo
- Dominando a Declaração Pass em Python: Guia Prático
- Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
- Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
- Dominando Iteradores em Python: Como Funcionam e Como Criar os Seus
- Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
- Dominando datetime do Python: Guia Prático de Datas, Horários e Fusos Horários
- Dominando time.sleep() do Python: Boas Práticas, Multithreading e Exemplos Reais
- Visão Geral do Python: Linguagem de Alto Nível, Legível, Interativa e Orientada a Objetos