que he visto personas utilizan mono-parches para configurar las opciones de un módulo, por ejemplo:Python: ¿Cuál es la forma recomendada de establecer las configuraciones de un módulo cuando lo importa?
importación mimodulo
mymodule.default_img = "/my/file.png"
mimodulo .view_default_img()
y Django, por ejemplo, tiene settings.py para toda la aplicación de Django, y siempre me irrita un poco.
¿Cuáles son las otras formas de administrar las configuraciones en un módulo? ¿Qué se recomienda? Parece que a menudo no hay una forma agradable de configurar la configuración a nivel de módulo.
Obviamente, evitar por completo la configuración es de lejos la más preferible, y generalmente es mejor usar clases o pasar el argumento a una función. Pero a veces no puede evitar tener configuraciones de algún tipo, y a veces tiene sentido tener configuraciones globales de todo el módulo solo por conveniencia (por ejemplo, el sistema de plantillas de Django - tener que especificar la ruta base para cada plantilla sería una pesadilla, definitivamente no es un buen código DRY).
Personalmente, creo que la peor forma de hacerlo es con un archivo de configuración como django. Pero +1 por mencionar ConfigParser. –
En realidad, probablemente no expresé mi pregunta muy bien. Cuando dije "configuración de configuración para un módulo" quise decir dentro de Python. Entonces, quizás una pregunta mejor: cuando importas un módulo, ¿cuál es la mejor manera de configurar el estado/parámetros a nivel de módulo en tiempo de ejecución, dentro de Python? Por ejemplo, cuando crea una instancia de una clase, una forma común pitonica de configurar el estado de nivel de clase es con los parámetros de la función __init__. ¿Cuál es la función __init__ para un módulo? – bryhoyt
Y, más al punto (porque es fácil poner código de tiempo de ejecución directamente en el módulo, como una función __init__), ¿cómo paso los parámetros a la función de módulos "__init__"? – bryhoyt