Módulos de Python: aprenda a crear e importar módulos personalizados e integrados

En este artículo, aprenderá a crear e importar módulos personalizados en Python. Además, encontrará diferentes técnicas para importar y usar módulos personalizados e integrados en Python.

Video: Módulos de Python

¿Qué son los módulos en Python?

Los módulos hacen referencia a un archivo que contiene declaraciones y definiciones de Python.

Un archivo que contiene código Python, por ejemplo:, example.pyse llama módulo y su nombre de módulo sería example.

Usamos módulos para dividir programas grandes en pequeños archivos organizados y manejables. Además, los módulos proporcionan reutilización de código.

Podemos definir nuestras funciones más utilizadas en un módulo e importarlas, en lugar de copiar sus definiciones en diferentes programas.

Creemos un módulo. Escriba lo siguiente y guárdelo como example.py.

 # Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result

Aquí, hemos definido una función add()dentro de un módulo llamado example. La función toma dos números y devuelve su suma.

¿Cómo importar módulos en Python?

Podemos importar las definiciones dentro de un módulo a otro módulo o al intérprete interactivo en Python.

Usamos la importpalabra clave para hacer esto. Para importar nuestro módulo previamente definido example, escribimos lo siguiente en el indicador de Python.

 >>> import example

Esto no importa los nombres de las funciones definidas exampledirectamente en la tabla de símbolos actual. Solo importa el nombre del módulo exampleallí.

Usando el nombre del módulo podemos acceder a la función usando el .operador punto . Por ejemplo:

 >>> example.add(4,5.5) 9.5

Python tiene toneladas de módulos estándar. Puede consultar la lista completa de módulos estándar de Python y sus casos de uso. Estos archivos están en el directorio Lib dentro de la ubicación donde instaló Python.

Los módulos estándar se pueden importar de la misma manera que importamos nuestros módulos definidos por el usuario.

Hay varias formas de importar módulos. Se enumeran a continuación …

Declaración de importación de Python

Podemos importar un módulo usando la importdeclaración y acceder a las definiciones dentro de él usando el operador de punto como se describe arriba. Aquí hay un ejemplo.

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

Cuando ejecute el programa, la salida será:

 El valor de pi es 3,141592653589793

Importar con cambio de nombre

Podemos importar un módulo renombrándolo de la siguiente manera:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

Hemos cambiado el nombre del mathmódulo como m. Esto puede ahorrarnos tiempo de escritura en algunos casos.

Tenga en cuenta que el nombre mathno se reconoce en nuestro alcance. Por lo tanto, math.pino es válido y m.pies la implementación correcta.

Python de … declaración de importación

Podemos importar nombres específicos de un módulo sin importar el módulo como un todo. Aquí hay un ejemplo.

 # import only pi from math module from math import pi print("The value of pi is", pi)

Aquí, importamos solo el piatributo del mathmódulo.

En tales casos, no usamos el operador de punto. También podemos importar múltiples atributos de la siguiente manera:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

Importar todos los nombres

Podemos importar todos los nombres (definiciones) de un módulo usando la siguiente construcción:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

Aquí, hemos importado todas las definiciones del módulo matemático. Esto incluye todos los nombres visibles en nuestro alcance, excepto los que comienzan con un guión bajo (definiciones privadas).

Importing everything with the asterisk (*) symbol is not a good programming practice. This can lead to duplicate definitions for an identifier. It also hampers the readability of our code.

Python Module Search Path

While importing a module, Python looks at several places. Interpreter first looks for a built-in module. Then(if built-in module not found), Python looks into a list of directories defined in sys.path. The search is in this order.

  • The current directory.
  • PYTHONPATH (an environment variable with a list of directories).
  • The installation-dependent default directory.
 >>> import sys >>> sys.path ('', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', 'C:\Python33\DLLs', 'C:\Python33\lib', 'C:\Python33', 'C:\Python33\lib\site-packages')

We can add and modify this list to add our own path.

Reloading a module

The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.

Suppose we have the following code in a module named my_module.

 # This module shows the effect of # multiple imports and reload print("This code got executed")

Now we see the effect of multiple imports.

 >>> import my_module This code got executed >>> import my_module >>> import my_module

We can see that our code got executed only once. This goes to say that our module was imported only once.

Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.

Python provides a more efficient way of doing this. We can use the reload() function inside the imp module to reload a module. We can do it in the following ways:

 >>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed 

The dir() built-in function

Podemos usar la dir()función para averiguar los nombres que están definidos dentro de un módulo.

Por ejemplo, hemos definido una función add()en el módulo exampleque teníamos al principio.

Podemos usar diren examplemódulo de la siguiente manera:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

Aquí, podemos ver una lista ordenada de nombres (junto con add). Todos los demás nombres que comienzan con un guión bajo son atributos de Python predeterminados asociados con el módulo (no definidos por el usuario).

Por ejemplo, el __name__atributo contiene el nombre del módulo.

 >>> import example >>> example.__name__ 'example'

Todos los nombres definidos en nuestro espacio de nombres actual se pueden encontrar usando la dir()función sin ningún argumento.

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

Articulos interesantes...