__init__ python

Funciones y métodos de Python

El archivo __init__.py indica que los archivos de una carpeta son parte de un paquete de Python. Sin un archivo __init__.py, no puede importar archivos desde otro directorio en un proyecto de Python.

Mientras echa un vistazo a los proyectos de muestra de Python, es posible que haya visto este archivo, __init__ .py. Es posible que se haya preguntado qué era, por qué está allí si está vacío y cómo funciona. ¡Esta publicación responderá a todas esas preguntas!

Aquí hay una estructura de archivo de ejemplo que incluye __init__.py :

 main_package / __init__.py file1.py file2.py file3.py main.py 

La carpeta principal es nuestro directorio de Python que quiero tratar como si fuera un paquete de Python. Para ser tratados como tales, tenemos que incluir un archivo __init__.py que transmita esta información al intérprete de Python.

El resto de los archivos son solo archivos de Python que cada uno tiene información diferente en él que podríamos querer usar en otro lugar. Esto podría ser una clase, una función, etc.

El main.py es donde vamos a llamar para las funciones que tenemos almacenadas en main_package. Verá cómo funciona esto en un minuto, pero primero echemos un vistazo al archivo __init__.py .




¿Qué es __init__.py?

El archivo __init__.py le permite al intérprete de Python saber que un directorio contiene código para un módulo de Python . Un archivo __init__.py puede estar en blanco. Sin uno, no puede importar módulos de otra carpeta a su proyecto.

La función del archivo __init__.py es similar a la función __init__ en una clase Python. El archivo es esencialmente el constructor de su paquete o directorio sin que se llame así. Establece cómo se importarán los paquetes o las funciones a sus otros archivos.

El 81% de los participantes afirmó que se sentía más seguro acerca de sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asigne a un bootcamp hoy mismo.

El graduado promedio de bootcamp pasó menos de seis meses en la transición de carrera, desde comenzar un bootcamp hasta encontrar su primer trabajo.

En su caso más simple, el El archivo __init__.py es un archivo vacío. Sin embargo, también se utiliza para configurar importaciones, por lo que se puede acceder a ellas desde cualquier otro lugar. Hay tres formas principales de hacerlo:

1.  main_package / __ init__.py e importaciones explícitas :

 de .file1 import file_1 # Donde file_1 es el nombre de la función y .file1 es el nombre del módulo / archivo de .file2 import file_2 from .file3 import file_3 

Usamos importaciones relativas para importar cada uno de los archivos en __init__.py. Dentro de estos archivos hay funciones que son únicas para cada archivo.

En main.py , ahora podemos acceder a estas funciones creando una declaración de importación en la parte superior del archivo usando explícita declaraciones de importación:

 desde main_package import file_1, file_2, file_3 # Esto importa solo lo que necesita file_1 () # ¡Este es mi archivo 1! file_2 () # ¡Y este es el archivo 2! file_3 () # ¡Finalmente, aquí está el archivo 3! 

Esto nos dice exactamente qué módulos estamos usando fuera del main_package.

2. main_package / __ init__ .py e importación estándar:

 import main_package # Esto importa todo el paquete main_package.file_1 ( ) # ¡Este es mi archivo 1! main_package.file_2 () # ¡Y este es el archivo 2! main_package.file_3 () # ¡Finalmente, aquí está el archivo 3! 

La única diferencia entre este y el anterior es que el primero importa solo lo que necesitamos (archivo_1, archivo_2, archivo_3) . El otro importa el módulo & ndash; por lo que usamos la notación de puntos para acceder a los nombres de las funciones.

3. main_package / __ init__.py y la importación de comodines:

En __init__.py, establezca una variable __all__ en una lista de los módulos / archivos en el paquete. Esto ayudará al intérprete a determinar qué se debe considerar cuando usamos la declaración de importación de comodines en main.py . Tenga en cuenta que la variable all está rodeada por dos guiones bajos a cada lado.

 __all__ = ["file1", "archivo2", "archivo3"] 

En main.py usaremos una declaración de importación genérica y usaremos la notación de puntos para acceder a la función:

La variable all sirve para indicarle al comodín, *, qué módulos / archivos se incluirán en esa importación. Cuando leemos desde main_package import * , deberíamos verlo realmente como from main_package import file1, file2, file3 . Luego usamos la notación de puntos para acceder al nombre de la función, como puede ver arriba.





Importación de archivos sin un archivo __init__.py

Si desea importar un archivo desde otro directorio, ese directorio debe contener un archivo __init__.py de Python. Considere esto ejemplo:

 de tortas importar crear 

Esta declaración importa un módulo llamado & ldquo; crear & rdquo; de la carpeta & ldquo; pasteles & rdquo ;. Nuestra carpeta de pasteles necesitaría tener estos dos archivos para que nuestro código funcione:

 cakes / create.py cakes / __ init__.py 

El primer archivo es nuestro módulo. El segundo archivo le dice a Python que nuestro directorio contiene módulos de Python. También podríamos importar nuestro código así:

 import cakes.create 

Nosotros no pude use cualquiera de estas declaraciones de importación sin un archivo __init__.py presente.

Para obtener más información sobre la importación de módulos, consulte nuestra guía de declaraciones de importación de Python .




Conclusión

¡Ese es el archivo __init__.py en Python! La forma en que lo use en su proyecto depende en gran medida de cómo le gustaría usar las importaciones.

Incluir un archivo __init__.py como parte de su configuración hace que su código sea más Pythonic. Esto se debe a que la estructura de su código es más clara. Escribir más código Pythonic es un gran objetivo entre los desarrolladores de software.

Aquí & rsquo; sa repl con el código Python de este artículo. ¡Úselo para ayudar a visualizar cómo funciona la estructura y experimentar con su propio código!

Para obtener consejos sobre los mejores cursos y recursos en línea de Python, consulte nuestro Guía de cómo aprender Python .





__init__ python: StackOverflow Questions

Tutorials