qué - modulos python 3
¿Cuál es la diferencia entre un módulo y un script en Python? (2)
Cualquier módulo de Python puede ser ejecutado como un script. La única diferencia significativa es que cuando se importa como un módulo, el nombre de archivo se usa como base para el nombre del módulo, mientras que si lo ejecuta como un script, el módulo se llama __main__
.
Esta distinción hace posible tener un comportamiento diferente cuando se importa al incluir código específico de script en un bloque protegido por if __name__=="__main__"
. Se sabe que esto causa confusión cuando un usuario intenta importar el módulo principal con su propio nombre en lugar de importar __main__
.
Una pequeña diferencia entre los scripts y los módulos es que al importar un módulo, el sistema intentará usar un archivo .pyc existente (siempre que exista y esté actualizado y para esa versión de Python) y si tiene que compilar desde un archivo. archivo py intentará guardar un archivo .pyc. Cuando ejecuta un archivo .py como secuencia de comandos, no intenta cargar un módulo compilado previamente, ni intenta guardar el código compilado. Por esta razón, puede valer la pena mantener los scripts pequeños para minimizar el tiempo de inicio.
Creo que el título resume la pregunta :-)
Un script es generalmente una pieza de código directamente ejecutable, ejecutada por sí misma. Un módulo es generalmente una biblioteca, importada por otras piezas de código.
Tenga en cuenta que no hay una distinción interna ; ambos son ejecutables e importables, aunque el código de la biblioteca a menudo no hace nada (o simplemente ejecuta sus pruebas unitarias) cuando se ejecuta directamente y el código de importación diseñado para ser un script hará que se ejecute, lo común if __name__ == "__main__"
prueba.