Tengo experiencia en Java y soy nuevo en Python. Quiero asegurarme de entender correctamente la terminología de Python antes de continuar.
Mi comprensión de un módulo es: un script que puede ser importado por muchos scripts, para facilitar la lectura. Al igual que en Java, tiene una clase, y muchas otras clases pueden importar esa clase.
Mi comprensión de una biblioteca es: una biblioteca contiene muchos módulos que están separados por su uso.
Mi pregunta es: ¿Son las bibliotecas como paquetes, donde tiene un paquete, por ejemplo food
, llamado , entonces:
- chocolate.py
- sweets.py
- biscuts.py
están contenidos en el food
paquete?
O las bibliotecas usan paquetes, por lo que si tuviéramos otro paquete drink
:
- milk.py
- jugo.py
contenido en el paquete. ¿ library
Contiene dos paquetes?
Además, una interfaz de programación de aplicaciones (API) generalmente contiene un conjunto de bibliotecas que se encuentra en la parte superior de la jerarquía:
- API
- Biblioteca
- Paquete
- Módulo
- Guión
Entonces, ¿una API constará de 2-5?
Respuestas:
Del tutorial de Python - Módulos
Módulo :
Paquete :
Si lee la documentación de la
import
declaración da más detalles, por ejemplo:Por lo tanto, el término se
module
refiere a una entidad específica: es una clase cuyas instancias son losmodule
objetos que usa en los programas de Python. También se utiliza, por analogía, para hacer referencia al archivo en el sistema de archivos a partir del cual estas instancias "se crean".El término script se utiliza para referirse a un módulo cuyo objetivo es ser ejecutado. Tiene el mismo significado que "programa" o "aplicación", pero generalmente se usa para describir programas simples y pequeños (es decir, un solo archivo con como máximo algunos cientos de líneas). Escribir un guión lleva unos minutos o unas pocas horas.
El término biblioteca es simplemente un término genérico para un montón de código que fue diseñado con el objetivo de ser utilizado por muchas aplicaciones. Proporciona algunas funciones genéricas que pueden ser utilizadas por aplicaciones específicas.
Cuando se "publica" un módulo / paquete / algo más, la gente a menudo se refiere a él como una biblioteca. A menudo, las bibliotecas contienen un paquete o varios paquetes relacionados, pero podría ser incluso un solo módulo.
Las bibliotecas normalmente no ofrecen ninguna funcionalidad específica, es decir, no puede "ejecutar una biblioteca".
La API puede tener diferentes significados según el contexto. Por ejemplo:
Python/C API
)En cualquier caso, una API no es un código Python. Es una descripción que puede ser más o menos formal.
fuente
Solo el paquete y el módulo tienen un significado bien definido específico de Python.
Una API no es una colección de código en sí , es más como una especificación de "protocolo" de cómo varias partes (generalmente bibliotecas) se comunican entre sí. Hay algunas API "estándar" notables en Python. Por ejemplo, la API de base de datos
En mi opinión, una biblioteca es cualquier cosa que no sea una aplicación ; en Python, una biblioteca es un módulo , generalmente con submódulos . El alcance de una biblioteca es bastante variable; por ejemplo, la biblioteca estándar de Python es vasta (con bastantes submódulos) mientras que hay muchas bibliotecas de propósito único en PyPi, por ejemplo, un backport de
collections.OrderedDict
para py <2.7Un paquete es una colección de módulos de Python bajo un espacio de nombres común. En la práctica, uno se crea colocando varios módulos de Python en un directorio con un
__init__.py
módulo especial (archivo).Un módulo es un archivo único de código Python destinado a ser importado . Esto es un poco simplificado ya que en la práctica bastantes módulos detectan cuando se ejecutan como script y hacen algo especial en ese caso.
Una secuencia de comandos es un archivo único de código Python que debe ejecutarse como el programa "principal".
Si tiene un conjunto de código que abarca varios archivos, probablemente tenga una aplicación en lugar de un script.
fuente
Biblioteca: es una colección de módulos.
(La biblioteca contiene módulos integrados (escritos en C) + módulos escritos en python).
Módulo: cada uno de un conjunto de partes estandarizadas o unidades independientes que se pueden usar para construir una estructura más compleja.
Hablando en un lenguaje informal, un módulo es un conjunto de líneas de código que se usan para un propósito específico y se pueden usar en otros programas tal cual, para evitar DRY ( D on't R epeat Y yourself ) como equipo y enfocarse en requisito principal. fuente
API es una interfaz para que otras aplicaciones interactúen con su biblioteca sin tener acceso directo.
El paquete es básicamente un directorio con archivos.
Script significa una serie de comandos dentro de un solo archivo.
fuente
Trataré de responder esto sin usar términos que usarían los primeros principiantes, y explicaré por qué o cómo los usaron de manera diferente, junto con el uso más "oficial" y / o más entendido o uniforme de los términos.
Puede ser confuso y me confundí pensando demasiado, así que no pienses mucho en eso. De todos modos, el contexto importa mucho.
Biblioteca : la mayoría de las veces se referirá a la biblioteca general u otra colección creada con un formato y uso similar. La Biblioteca General es la suma de Módulos 'estándar', populares y ampliamente utilizados, que pueden considerarse herramientas de un solo archivo, por ahora o atajos que hacen las cosas posibles o más rápidas. La biblioteca general es una opción que la mayoría de la gente habilita al instalar Python. Debido a que tiene este nombre "Biblioteca general de Python", se usa a menudo con una estructura e ideas similares. Witch es simplemente tener un montón de módulos, tal vez incluso paquetes agrupados, generalmente en una lista. La lista suele ser para descargarlos. Generalmente se trata solo de archivos relacionados, con intereses similares. Esa es la forma más sencilla de describirlo.
Módulo : un módulo se refiere a un archivo. El archivo tiene un script 'en él' y el nombre del archivo es el nombre del módulo, los archivos de Python terminan con .py. Todo el archivo contiene es código que se ejecutó en conjunto hace que algo suceda, mediante el uso de funciones, cadenas, etc. Los módulos principales que probablemente ve con más frecuencia son populares porque son módulos especiales que pueden obtener información de otros archivos / módulos. Es confuso porque el nombre del archivo y el módulo son iguales y simplemente suelte el .py. Realmente es solo código que puede usar como un atajo escrito por alguien para hacer algo más fácil o posible.
Paquete : este es un término que se usa generalmente a veces, aunque el contexto marca la diferencia. El uso más común de mi experiencia son múltiples módulos (o archivos) que están agrupados. La razón por la que se agrupan puede deberse a varias razones, es decir, cuando el contexto importa. Estas son las formas en que he notado el término paquete (s)usado. Son un grupo de módulos descargados, creados y / o almacenados. Lo cual puede ser cierto, o solo 1, pero en realidad es solo un archivo que hace referencia a otros archivos, que deben estar en la estructura o formato correcto, y esa suma completa es el paquete en sí, instalado o puede haber sido incluido en el biblioteca general de Python. Un paquete puede contener módulos (archivos .py) porque dependen unos de otros y, en ocasiones, es posible que no funcionen correctamente o no funcionen en absoluto. Siempre hay un objetivo común de cada parte (módulo / archivo) de un paquete, y la suma total de todas las partes es el paquete en sí.
La mayoría de las veces en Python, los paquetes son módulos, porque el nombre del paquete es el nombre del módulo que se usa para conectar todas las piezas. Entonces puede ingresar un paquete porque es un módulo, también le permite llamar a otros módulos, que no son paquetes porque solo realizan una determinada función, o la tarea no involucra otros archivos. Los paquetes tienen un objetivo y cada módulo trabaja en conjunto para lograr ese objetivo final.
La mayor parte de la confusión proviene de un simple nombre de archivo o prefijo a un archivo, usado como nombre del módulo y luego nuevamente como nombre del paquete.
Recuerde que se pueden instalar módulos y paquetes. Biblioteca suele ser un término genérico para enumerar o formatear un grupo de módulos y paquetes. Al igual que la biblioteca general de Pythons. Una jerarquía no funcionaría, las API no pertenecen realmente, y si lo hiciera, podrían estar en cualquier lugar y en todos los productos que involucren Script, Módulo y Paquetes, siendo la biblioteca mundial una palabra tan general, que se aplica fácilmente a muchas cosas, también hace que API sea capaz sentarse encima o debajo de eso. Algunos módulos pueden basarse en otro código, y esa es la única vez que creo que se relacionaría con una discusión puramente relacionada con Python.
fuente