Tengo un paquete mypack
con los módulos mod_a
y mod_b
en él. Tengo la intención del propio paquete como mod_a
a importar libremente:Python: módulo 'Privado' en un paquete
import mypack
import mypack.mod_a
Sin embargo, me gustaría mantener mod_b
para el uso exclusivo de mypack
. Eso es porque existe simplemente para organizar el código interno de este último.
Mi primera pregunta es, ¿es una práctica aceptada en la programación de Python tener módulos 'privados' como este?
En caso afirmativo, mi segunda pregunta es, ¿cuál es la mejor manera de transmitir esta intención al cliente? ¿Prefijo el nombre con un guión bajo (es decir, _mod_b
)? ¿O sería una buena idea declarar un subpaquete private
y colocar todos esos módulos allí?
Llego a esta publicación casi 6 años después con las mismas preguntas y motivaciones que tuviste. ¿Sigue siendo el enfoque de subpaquete privado el que toma o ha intentado otros enfoques desde entonces? –
Sí. Todavía estoy usando este método. No he encontrado una mejor alternativa. –
Gracias por la actualización y por sugerir este enfoque en primer lugar. Prefijo el nombre del subpaquete "privado" con un 'z_', para que aparezca por último en los menús desplegables de finalización de código IDE. Utilizo las importaciones relativas en el '' __init__. Py' del subpaquete para exponer solo las funciones "públicas". En PyCharm y Jupyter, para mantener los nombres de los módulos internos fuera de los menús desplegables, cada módulo debe tener una función con el mismo nombre que el módulo, y debo importar la función en '__init __. Py'. Probablemente ya sepas todo esto, pero si no, aquí está. Si quieres que me expanda como respuesta solo házmelo saber. –