Cómo Importar módulos

Todos los programas de Python pueden llamar a un conjunto básico de funciones llamadas funciones incorporadas o built-in functions, incluyendo las funciones print(), input() y len() que has visto antes. Python también viene con un conjunto de módulos llamados biblioteca estándar. Cada módulo es un programa de Python que contiene un grupo de funciones relacionadas que pueden ser incrustadas en tus programas. Por ejemplo, el módulo math tiene funciones relacionadas con las matemáticas, el módulo random tiene funciones relacionadas con los números aleatorios, etc.

Antes de poder utilizar las funciones de un módulo, debes importar el módulo con una sentencia import. En código, una sentencia import consiste en lo siguiente:

  • La palabra clave import
  • El nombre del módulo
  • Opcionalmente, más nombres de módulos, siempre que estén separados por comas

Una vez que importas un módulo, puedes utilizar todas las funciones geniales de ese módulo. Vamos a probar con el módulo random, que nos dará acceso a la función random.randint().

Introduce este código en el editor de archivos, y guárdalo como printRandom.py:

import random
for i in range(5):
    print(random.randint(1, 10))

Cuando ejecute este programa, la salida será algo parecido a esto:

4
1
8
4
1

Puedes ver la ejecución de este programa en https://autbor.com/printrandom/. La llamada a la función random.randint() evalúa un valor entero aleatorio entre los dos enteros que le pasas. Como randint() está en el módulo random, primero debes escribir random. delante del nombre de la función para decirle a Python que busque esta función dentro del módulo random.

Este es un ejemplo de una sentencia import que importa cuatro módulos diferentes:

import random, sys, os, math

Ahora podemos utilizar cualquiera de las funciones de estos cuatro módulos.

Declaración from import

Una forma alternativa de la sentencia import está compuesta por la palabra clave from, seguida del nombre del módulo, la palabra clave import y una estrella; por ejemplo, from random import *.

Con esta forma de sentencia import, las llamadas a funciones en random no necesitarán el prefijo random. Sin embargo, el uso del nombre completo hace que el código sea más legible, por lo que es mejor utilizar la forma import random de la sentencia.

No sobrescribir los nombres de los módulos

Cuando guardes tus scripts de Python, ten cuidado de no darles un nombre que sea usado por uno de los módulos de Python, como random.py, sys.py, os.py, o math.py. Si accidentalmente nombras uno de tus programas, por ejemplo, random.py, y utilizas una sentencia import random en otro programa, tu programa importaría tu archivo random.py en lugar del módulo random de Python. Esto puede llevar a errores como AttributeError: module ‘random’ has no attribute ‘randint’, ya que tu random.py no tiene las funciones que tiene el módulo random real. Tampoco utilices los nombres de las funciones incorporadas de Python, como print() o input().

Problemas como estos son poco comunes, pero pueden ser difíciles de resolver. A medida que adquieras más experiencia en programación, serás más consciente de los nombres estándar utilizados por los módulos y funciones de Python, y te encontrarás con estos problemas con menos frecuencia.

Deja una respuesta