Organizando tus módulos de Python - __init__.py
Python es un lenguaje súper fácil de usar. Se ha vuelto muy popular en escuelas, investigación, y para “Data Science”. Éste es un post sobre ‘buenas prácticas’ con tu códgo de Python.
¿Para qué es __init__.py?
El archivo __init__.py es utilizado para inicializar paquetes de Python. Imaginemos que tenemos un paquete de python llamado package, que además contiene un subpaquete llamado subpackage. Imaginemos que se ve así:
En este caso, el archivo init.py le indica al intérprete de Python que el directorio package contiene un módulo, y que debe tratarlo como tal (es decir, hacer que sea posible importar los archivos como parte del módulo).
¿Qué pongo en el archivo __init__.py?
En general no es necesario poner nada en el archivo __init__.py, pero es muy común usarlo para realizar configuraciones e importar cualquier objeto necesario de nuestra librería.
Por ejemplo, en nuestro ejemplo, si el archivo archivo1.py
contiene una clase llamada Archivo
, podemos importarla con __init__.py para que esté disponible al nivel de paquete. Normalmente para importar esta clase, tendríamos que hacer lo siguiente:
Pero podemos simplificarlo con nuestro __init__.py así:
Otra posibilidad bastanté útil de __init__.py es la variable __all__. Esta variable contiene la lista de módulos que serán importados al utilizar import *
. Para nuestra estructura de ejemplo, si el __init__.py del directorio subpackage/
contiene lo siguiente:
Entonces al realizar lo siguiente:
Con estas herramientas puedes hacer que tus paquetes sean mucho más elegantes de importar y manejar. Ojalá haya resultado útil, y cualquier duda o comentario, adelante!
Posteriormente habrá otros posts sobre cómo usar Python mejor.