¿Ya no es necesario __init__.py en los paquetes [PYTHON 3.xx]

Iniciado por Yidu, 20 Agosto 2018, 21:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Yidu

Hola de nuevo  ;)

A dia de hoy no habia usado paquetes con python. Solia importar los modulos dentro de la misma carpeta del script principal y ya me bastaba.

La cosa esta que he visto algunos videos recientes, incluso usando Python 3, y el creador del mismo suele poner __init__.py (que normalmente es un script vacio) dentro de cada paquete. Y claro, yo lo he probado sin poner este archivo y me funciona igual.

Incluso he puesto varios modulos dentro de una paquete (o carpeta) y me los reconoce igualmente. Es decir, se importa el paquete y luego cualquier modulo del mismo.

La sintaxis que utilizo es la normal:

Código (python) [Seleccionar]
from paquete.modulo_1 import funcion

paquete es un carpeta, modulo_1 uno de los scripts dentro del paquete y funcion dentro del modulo_1

¿Es correcto? ¿Para que poner el __init__.py si me funciona igual?

Saludos!

Eleкtro

Cita de: Yidu en 20 Agosto 2018, 21:17 PM¿Para que poner el __init__.py si me funciona igual?

En Python 3.3 se implementaron los espacios de nombres de paquetes implícitos para evitar la creación de los archivos __init__.py en ciertas circunstancias, en el siguiente enlace se explica las circunstancias en las que se sigue necesitando crear los archivos __init__.py:


...y en la respuesta aceptada tienes toda la información aidicional necesaria.

Saludos.