Importar todas las funciones desde un archivo en Python

Muhammad Maisam Abbas 30 enero 2023
  1. Importe todas las funciones desde un archivo con la instrucción import * en Python
  2. Razón para no utilizar el enfoque import *
Importar todas las funciones desde un archivo en Python

Este tutorial discutirá el método para importar todas las funciones desde un archivo en Python.

Importe todas las funciones desde un archivo con la instrucción import * en Python

La instrucción import se usa para importar paquetes, módulos y bibliotecas en nuestro código Python.

Podemos usar import * si queremos importar todo desde un archivo en nuestro código. Tenemos un archivo llamado functions.py que contiene dos funciones square() y cube().

Podemos escribir from functions import * para importar ambas funciones en nuestro código. Entonces podemos usar las funciones square() y cube() en nuestro código.

El siguiente fragmento de código muestra una implementación funcional de este enfoque.

from functions import *

print(cube(3))

Producción :

27

Importamos todas las funciones dentro del archivo functions.py dentro de nuestro código con la instrucción import * en Python.

Luego llamamos a la función cube() dentro del archivo functions.py e imprimimos el cubo de 3. Aunque este método hace el trabajo, no es recomendable usarlo.

Razón para no utilizar el enfoque import *

Este enfoque utiliza una sentencia import implícita, mientras que en Python siempre se recomienda utilizar declaraciones de import explícitas.

Según el zen de Python, explícito es mejor que implícito. Hay dos razones clave para esta declaración.

La primera razón es que es muy difícil entender qué función proviene de qué archivo a medida que aumenta el tamaño del proyecto, y terminamos importando funciones de varios archivos. Es especialmente difícil para otra persona leer nuestro código y comprender completamente lo que está sucediendo.

Hace que nuestro código sea muy difícil de depurar y mantener. Este problema se destaca en el siguiente fragmento de código.

from functions import *
from functions1 import *
from functions2 import *

print(square(2))

Producción :

4

En el fragmento de código anterior, es imposible saber dónde se define la función square() original con solo mirar el código. Para comprender completamente los orígenes de la función square(), tenemos que explorar todos los archivos manualmente.

La segunda razón clave es que si tenemos dos funciones con el mismo nombre en varios archivos, el intérprete utilizará la declaración de importación más reciente. Este fenómeno se demuestra en el siguiente fragmento de código.

from functions2 import *
from functions import *

print(hello())

print(hello())
print(hello())

Producción :

hello from functions
hello from functions2
hello from functions2

Los dos archivos functions.py y functions2.py contienen una función hello().

En la primera línea de salida, importamos el archivo functions.py y, por lo tanto, se ejecuta la función hello() dentro de este archivo. En la segunda y tercera líneas de salida, también hemos importado el archivo functions2.py, que contiene una función hello().

Entonces, la nueva función hola() se ejecuta en las dos últimas líneas de salida.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Python Import