Tenho experiência em Java e sou novo em Python. Quero ter certeza de que entendi corretamente a terminologia do Python antes de prosseguir.
Meu entendimento de um módulo é: um script que pode ser importado por vários scripts, para tornar a leitura mais fácil. Assim como em java, você tem uma classe, e essa classe pode ser importada por muitas outras classes.
Meu entendimento de uma biblioteca é: Uma biblioteca contém muitos módulos que são separados por seu uso.
Minha pergunta é: as bibliotecas são como pacotes, onde você tem um pacote, por exemplo food
, chamado , então:
- chocolate.py
- sweets.py
- biscuts.py
estão contidos no food
pacote?
Ou as bibliotecas usam pacotes, então se tivéssemos outro pacote drink
:
- milk.py
- suco.py
contido no pacote. O library
contém dois pacotes?
Além disso, uma interface de programação de aplicativo (API) geralmente contém um conjunto de bibliotecas no topo da hierarquia:
- API
- Biblioteca
- Pacote
- Módulo
- Roteiro
Portanto, uma API consistirá de 2 a 5?
Respostas:
Do Tutorial Python - Módulos
Módulo :
Pacote :
Se você leu a documentação para a
import
declaração dá mais detalhes, por exemplo:Portanto, o termo
module
se refere a uma entidade específica: é uma classe cujas instâncias são osmodule
objetos que você usa em programas python. Também é usado, por analogia, para se referir ao arquivo no sistema de arquivos a partir do qual essas instâncias "são criadas".O termo script é usado para se referir a um módulo cujo objetivo é ser executado. Tem o mesmo significado que "programa" ou "aplicativo", mas geralmente é usado para descrever programas simples e pequenos (ou seja, um único arquivo com no máximo algumas centenas de linhas). Escrever um script leva minutos ou algumas horas.
O termo biblioteca é simplesmente um termo genérico para um grupo de código que foi projetado com o objetivo de ser utilizável por muitos aplicativos. Ele fornece algumas funcionalidades genéricas que podem ser usadas por aplicativos específicos.
Quando um módulo / pacote / algo mais é "publicado", as pessoas costumam se referir a ele como uma biblioteca. Freqüentemente, as bibliotecas contêm um pacote ou vários pacotes relacionados, mas podem ser até mesmo um único módulo.
As bibliotecas geralmente não fornecem nenhuma funcionalidade específica, ou seja, você não pode "executar uma biblioteca".
A API pode ter significados diferentes dependendo do contexto. Por exemplo:
Python/C API
)Em qualquer caso, uma API não é um código python. É uma descrição que pode ser mais ou menos formal.
fonte
Apenas pacote e módulo têm um significado bem definido específico para Python.
Uma API não é uma coleção de código em si - é mais como uma especificação de "protocolo" como várias partes (geralmente bibliotecas) se comunicam umas com as outras. Existem algumas APIs "padrão" notáveis em python. Por exemplo, a API DB
Na minha opinião, uma biblioteca é qualquer coisa que não seja um aplicativo - em python, uma biblioteca é um módulo - geralmente com submódulos . O escopo de uma biblioteca é bastante variável - por exemplo, a biblioteca padrão do python é vasta (com alguns submódulos), embora haja muitas bibliotecas de propósito único no PyPi, por exemplo, um backport de
collections.OrderedDict
for py <2.7Um pacote é uma coleção de módulos Python em um namespace comum. Na prática, um é criado colocando vários módulos Python em um diretório com um
__init__.py
módulo especial (arquivo).Um módulo é um único arquivo de código Python que deve ser importado . Isso é uma simplificação, pois na prática alguns módulos detectam quando são executados como script e fazem algo especial nesse caso.
Um script é um único arquivo de código python que deve ser executado como o programa 'principal'.
Se você tem um conjunto de código que abrange vários arquivos, provavelmente tem um aplicativo em vez de um script.
fonte
Biblioteca: é uma coleção de módulos.
(A biblioteca contém módulos integrados (escritos em C) + módulos escritos em python).
Módulo: Cada um de um conjunto de peças padronizadas ou unidades independentes que podem ser usadas para construir uma estrutura mais complexa.
Falando em linguagem informal, um módulo é um conjunto de linhas de código que são usadas para uma finalidade específica e podem ser usadas em outros programas como está, para evitar DRY ( D on't R epeat Y ourself) como uma equipe e com foco em requisito principal. fonte
API é uma interface para outros aplicativos interagirem com sua biblioteca sem ter acesso direto.
O pacote é basicamente um diretório com arquivos.
Script significa série de comandos em um único arquivo.
fonte
Tentarei responder a isso sem usar termos que os primeiros iniciantes usariam, e explicarei por que ou como eles usaram de forma diferente, junto com o uso mais "oficial" e / ou mais compreendido ou uniforme dos termos.
Pode ser confuso, e eu me confundi pensando muito, então não pense muito sobre isso. De qualquer forma, o contexto é muito importante.
Biblioteca - na maioria das vezes se refere à biblioteca geral ou outra coleção criada com um formato e uso semelhantes. A Biblioteca Geral é a soma de Módulos 'padrão', populares e amplamente usados, que podem ser considerados como ferramentas de arquivo único, por enquanto ou atalhos que tornam as coisas possíveis ou mais rápidas. A biblioteca geral é uma opção que a maioria das pessoas habilita ao instalar o Python. Por ter esse nome "Biblioteca Geral do Python", é freqüentemente usada com estruturas e ideias semelhantes. Witch é simplesmente ter um monte de Módulos, talvez até pacotes agrupados, geralmente em uma lista. A lista geralmente é para baixá-los. Geralmente são apenas arquivos relacionados, com interesses semelhantes. Essa é a maneira mais fácil de descrever.
Módulo - um módulo se refere a um arquivo. O arquivo tem um script 'nele' e o nome do arquivo é o nome do módulo, os arquivos Python terminam com .py. Tudo o que o arquivo contém é código executado em conjunto para que algo aconteça, usando funções, strings etc. Os módulos principais que você provavelmente vê com mais frequência são populares porque são módulos especiais que podem obter informações de outros arquivos / módulos. É confuso porque o nome do arquivo e do módulo são iguais e apenas eliminam o .py. Na verdade, é apenas um código que você pode usar como um atalho escrito por alguém para tornar algo mais fácil ou possível.
Pacote - Este é um termo geralmente usado às vezes, embora o contexto faça uma diferença. O uso mais comum de minha experiência são vários módulos (ou arquivos) que são agrupados. O motivo pelo qual eles estão agrupados pode ser por alguns motivos, ou seja, quando o contexto é importante. Estas são as maneiras que percebi no (s) termo (s) pacote (s)usava. Eles são um grupo de módulos baixados, criados e / ou armazenados. O que pode ser verdade, ou apenas 1, mas na verdade é apenas um arquivo que faz referência a outros arquivos, que precisam estar na estrutura ou formato correto, e toda essa soma é o próprio pacote, instalado ou pode ter sido incluído no biblioteca geral do python. Um pacote pode conter módulos (arquivos .py) porque eles dependem uns dos outros e às vezes podem não funcionar corretamente ou nem funcionar. Sempre há um objetivo comum para cada parte (módulo / arquivo) de um pacote, e a soma total de todas as partes é o próprio pacote.
Na maioria das vezes, em Python, os Pacotes são Módulos, porque o nome do pacote é o nome do módulo que é usado para conectar todas as peças. Então você pode inserir um pacote porque é um módulo, também permite que ele chame outros módulos, que não são pacotes porque eles desempenham apenas uma determinada função, ou a tarefa não envolve outros arquivos. Os pacotes têm um objetivo e cada módulo trabalha em conjunto para atingir esse objetivo final.
A maior parte da confusão vem de um simples nome de arquivo de arquivo ou prefixo de um arquivo, usado como o nome do módulo e novamente o nome do pacote.
Lembre-se de que os módulos e pacotes podem ser instalados. Biblioteca é geralmente um termo genérico para listar ou formatar um grupo de módulos e pacotes. Muito parecido com a biblioteca geral Pythons. Uma hierarquia não funcionaria, as APIs não pertencem realmente, e se você pertencesse, elas poderiam estar em qualquer lugar e em todos os ware envolvendo Script, Módulo e Pacotes, a biblioteca worl sendo uma palavra tão geral, facilmente aplicada a muitas coisas, também torna a API capaz sentar acima ou abaixo disso. Alguns módulos podem ser baseados em outro código, e essa é a única vez que acho que se relacionaria a uma discussão puramente relacionada ao Python.
fonte