English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico do Python

Controle de Fluxo do Python

Função do Python

Tipos de Dados do Python

Operações de Arquivos do Python

Objetos e Classes do Python

Data e Hora do Python

Conhecimentos Avançados do Python

Manual de Referência do Python

Pacote (Package) do Python

Neste artigo, você aprenderá a usar pacotes do Python para dividir bibliotecas de código em módulos limpos e eficientes. Além disso, você também aprenderá como importar e usar pacotes próprios ou de terceiros em programas Python.

O que é pacote (Package)?

Normalmente, não guardamos todos os arquivos no mesmo lugar. Usamos uma estrutura hierárquica de pastas bem organizada para facilitar o acesso.

Os arquivos semelhantes são armazenados na mesma pasta, por exemplo, podemos manter todos os álbuns na pasta “music”. Da mesma forma, o Python possui pacotes para pastas e para arquivosMódulo.

À medida que o tamanho do nosso aplicativo aumenta, com muitos módulos, organizamos módulos semelhantes em um pacote e módulos diferentes em pacotes diferentes. Isso torna o projeto (programa) fácil de gerenciar e claro conceitualmente.

Da mesma forma, pois os diretórios podem conter subdiretórios e arquivos, os pacotes do Python podem ter subpacotes e módulos.

Os diretórios devem conter um arquivo chamado __init__.py para que o Python o considere um pacote. Este arquivo pode ser mantido vazio, mas geralmente colocamos o código de inicialização do pacote neste arquivo.

Este é um exemplo. Suponhamos que estamos desenvolvendo um jogo; a organização possível de pacotes e módulos pode ser como mostrado na figura a seguir.

Importar módulos de pacotes

Podemos usar o operador de ponto (.) para importar módulos de pacotes.

Por exemplo, se precisarmos importar o módulo start no exemplo acima, complete os seguintes passos.

import Game.Level.start

Agora, se o módulo contém uma função chamada select_difficulty()FunçãoPara isso, devemos usar o nome completo.

Game.Level.start.select_difficulty(2)

Se esta construção parece muito extensa, podemos importar o módulo sem prefixo de pacote da seguinte forma.

from Game.Level import start

Agora, podemos simplesmente chamar a função da seguinte maneira.

start.select_difficulty(2)

Outra maneira de importar apenas as funções (ou classes ou variáveis) de módulos de pacotes é a seguinte.

from Game.Level.start import select_difficulty

Agora podemos chamar diretamente esta função.

select_difficulty(2)

Embora muito simples, não é recomendado usar este método. Use o completoEspaço de nomesEvita confusões e previne conflitos de nomes de identificadores idênticos.

Ao importar pacotes, o Python verifica a lista de diretórios definida em sys.path, semelhante aCaminho de busca de módulos.