Pacote Python
Pacote Python
Neste artigo, você aprenderá a dividir sua base de código em módulos limpos e eficientes usando pacotes Python. Além disso, você aprenderá a importar e usar pacotes próprios ou de terceiros em um programa Python.
Vídeo:Pacotes Python:organize seu código
O que são pacotes?
Normalmente, não armazenamos todos os nossos arquivos em nosso computador no mesmo local. Usamos uma hierarquia de diretórios bem organizada para facilitar o acesso.
Arquivos semelhantes são mantidos no mesmo diretório, por exemplo, podemos manter todas as músicas na pasta "música ". De forma análoga a isso, o Python possui pacotes para diretórios e módulos para arquivos.
À medida que nosso programa de aplicação cresce em tamanho com muitos módulos, colocamos módulos semelhantes em um pacote e módulos diferentes em pacotes diferentes. Isso torna um projeto (programa) fácil de gerenciar e conceitualmente claro.
Da mesma forma, como um diretório pode conter subdiretórios e arquivos, um pacote Python pode ter subpacotes e módulos.
Um diretório deve conter um arquivo chamado
__init__.py
para que o Python o considere como um pacote. Este arquivo pode ficar vazio, mas geralmente colocamos o código de inicialização desse pacote neste arquivo. Aqui está um exemplo. Suponha que estamos desenvolvendo um jogo. Uma possível organização de pacotes e módulos pode ser mostrada na figura abaixo.

Importando módulo de um pacote
Podemos importar módulos de pacotes usando o operador ponto (.).
Por exemplo, se quisermos importar o
start
módulo no exemplo acima, pode ser feito da seguinte forma:
import Game.Level.start
Agora, se este módulo contém uma função chamada
select_difficulty()
, devemos usar o nome completo para referenciá-lo.
Game.Level.start.select_difficulty(2)
Se essa construção parecer longa, podemos importar o módulo sem o prefixo do pacote da seguinte maneira:
from Game.Level import start
Agora podemos chamar a função simplesmente da seguinte forma:
start.select_difficulty(2)
Outra maneira de importar apenas a função necessária (ou classe ou variável) de um módulo dentro de um pacote seria a seguinte:
from Game.Level.start import select_difficulty
Agora podemos chamar diretamente esta função.
select_difficulty(2)
Embora mais fácil, este método não é recomendado. Usar o namespace completo evita confusão e evita que dois nomes de identificadores iguais colidam.
Ao importar pacotes, o Python procura na lista de diretórios definidos em
sys.path
, semelhante ao caminho de pesquisa do módulo. python