Creación de módulos importables

Completados

Tip

Consulte la pestaña Texto e imágenes para obtener más detalles.

Una vez que el programa tiene más de una serie de funciones, mantener todo en un solo archivo es difícil de navegar. Python resuelve esto con módulos. Un módulo es solo un .py archivo cuyas funciones y variables se pueden reutilizar de otros archivos.

Creación de su propio módulo

Cualquier archivo Python que escriba se puede importar como módulo. El nombre del módulo es el nombre de archivo sin la .py extensión .

Supongamos que tiene este archivo: math_utils.py

# math_utils.py

def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

Importación de un módulo

Desde otro archivo de la misma carpeta, puede incorporar math_utils y usar sus funciones:

# app.py
import math_utils

print(math_utils.add(2, 3))        # Output: 5
print(math_utils.multiply(4, 5))   # Output: 20

Importación de nombres específicos

Si solo necesita algunos elementos de un módulo, puede importarlos por su nombre. Esta sintaxis le permite usarlos sin el prefijo del módulo:

from math_utils import add, multiply

print(add(2, 3))        # Output: 5
print(multiply(4, 5))   # Output: 20

Uso de un alias

Si un nombre de módulo es largo o entra en conflicto con otro nombre, puede asignarle un alias más corto con as:

import math_utils as mu

print(mu.add(2, 3))   # Output: 5

Verá este patrón a menudo con bibliotecas de terceros, por ejemplo, import pandas as pd.

El bloque if __name__ == "__main__":

Cuando usted import un archivo, Python ejecuta el código que contiene. Si desea incluir código que solo se ejecute cuando el archivo se ejecute directamente, colóquelo en un if __name__ == "__main__": bloque:

# math_utils.py

def add(a, b):
    return a + b

if __name__ == "__main__":
    # Quick self-test — only runs when this file is executed directly
    print(add(2, 3))

Este patrón permite que un archivo funcione como un script independiente y como módulo importable.

¿Por qué importan los módulos?

  • Mantienen cada archivo centrado en una sola responsabilidad.
  • Hacen que el código sea más fácil de probar, ya que las funciones residen en un solo lugar.
  • Hacen que sea natural compartir y reutilizar código entre proyectos.