Cómo evitar variables globales.

Cuando leo documentación de python y varias listas de correo, siempre leo algo que parece un dogma. Las variables globales deben ser evitadas como el infierno, son de diseño pobre ... OK, ¿por qué no? Pero hay una situación de la vida real en la que no sé cómo evitar ese patrón.

Digamos que tengo una GUI desde la que se pueden cargar varios archivos desde el menú principal. Los objetos de archivo correspondientes a los archivos cargados se pueden usar en toda la GUI (por ejemplo, un visor de imágenes que mostrará una imagen y en el que se pueden realizar varias acciones a través de diferentes diálogos / complementos).

¿Hay algo realmente malo en construir el siguiente diseño:

Menu.py -> el archivo se cargará desde aquíMain.py -> los objetos de archivo cargados se pueden utilizar aquíDialog1.py -> o aquíDialog2.py -> o allíDialog3.py -> o allí...Globals.py

donde Globals.py almacenará un diccionario cuya clave son el nombre de los archivos cargados y el valor de los objetos de archivo correspondientes. Luego, desde allí, las diversas partes del código que necesitan esos datos accederían a él a través de referencias débiles.

Disculpe si mi pregunta parece (o es) estúpida, pero ¿ve alguna alternativa elegante o libre de todo el mundo? Una forma sería encapsular el diccionario de datos cargados en la clase de aplicación principal de Main.py, considerándolo como la parte de acceso central de la GUI. Sin embargo, eso también traería algunas complicaciones, ya que esta clase debería ser fácilmente accesible desde todos los diálogos que necesitan los datos, incluso si son necesariamente hijos directos de ellos.

muchas gracias por tu ayuda

Respuestas a la pregunta(2)

Su respuesta a la pregunta