Qué es lo que debe contener el archivo <strong>init</strong>.py? es un archivo vacío?

Alfonso Morán

Alfonso Morán

Pregunta
studenthace 4 años

Qué es lo que debe contener el archivo init.py? es un archivo vacío?

4 respuestas
para escribir tu comentario
    David Granados

    David Granados

    studenthace 4 años

    Lo que dice Luis_Lira está mal en muchos sentidos, al menos desde python 3.3 el init.py no es necesario y menos si va vacío (https://www.python.org/dev/peps/pep-0420/)

    Python actualmente hace el namespacing con la misma jerarquía del filesystem, por lo que el init.py vacío no hace nada ni es necesario al menos que, como dice pabloantipan lo uses para inicializar al package creando variables, funciones o haciendo imports por defecto.

    Yo por ejemplo lo uso como dice pablo para hacer el import automático de varios models o classes en un package que los contenga distribuidos en diferentes modules, es decir, si tengo un archivo que tiene varios modelos y este crece mucho o se pierde la cohesión entre dichos modelos, los separo en varios modules creo un package y lo inicializo para que haga el import automático de los modules y así es como si siguieran dentro del mismo module para no refactorizar ni romper nada del app que lo estaba utilizando.

    Pablo Antipan Quiñenao

    Pablo Antipan Quiñenao

    studenthace 4 años

    Hola alfonso98!

    Es un archivo que permite que un modulo sea reconocido como tal. NO necesariamente va vacío, sino que puede contener importaciones, algo como:

    from .mymodule.myclass.myfile import MyClass

    De este modo, luego importas como: from mymodule import MyClass

    De este modo, aunque tengas anidado funciones y clases dentro de la carpeta de mymodule, puedes obviar los puntos.

    A su vez, dentro de este archivo puedes dejar comentarios (RECOMENDABLE) y hasta algunos ejemplos de uso (esto NO siempre esa asi, hay diferentes estrategias de testeo)

    Saludos :D

    Alfonso Morán

    Alfonso Morán

    studenthace 4 años

    Gracias! 😄

    Luis Lira

    Luis Lira

    studenthace 4 años

    Sí, es un archivo vacío que sirve para que Python reconozca lo módulos.

Curso Profesional de Python

Curso Profesional de Python

Culmina tu aprendizaje sobre este vasto lenguaje de programación. Domina los conceptos que te llevarán a las condiciones necesarias para iniciar tu camino en la carrera de la industria tecnológica que prefieras: Backend, Ciencia de Datos, Inteligencia Artificial.

Curso Profesional de Python

Curso Profesional de Python

Culmina tu aprendizaje sobre este vasto lenguaje de programación. Domina los conceptos que te llevarán a las condiciones necesarias para iniciar tu camino en la carrera de la industria tecnológica que prefieras: Backend, Ciencia de Datos, Inteligencia Artificial.