Buenos dias. ¿Se puede conseguir que los datos de una variable estatica definida en una clase sea permanente, ejecutando la misma clase en diferentes archivos? Explico lo que quisiera hacer...
listClients
class ListClients:
clients = {}
@staticmethod
def add(key,value):
ListClients.clients[f"{key}"]=value
@staticmethod
def get(key):
print(ListClients.clients[key])
@staticmethod
def delete(key):
del ListClients.clients[key]
main.py
from listClients import ListClients
print("==================main================")
ListClients.add("key",{"HOLA":"adios"})
ListClients.add("key2",{"HOLA2":"adios2"})
print(ListClients.clients)
main2.py
from listClients import ListClients
print("==================main2================")
ListClients.add("key3",{"HOLA3":"adios"})
print(ListClients.clients)
El archivo listClients se encarga de almacenar clientes
El main.py crea dos objetos. La variable clientes contiene los dos objetos, gracias a que en la clase tiene una variable estatica que hace la persistencia de los datos
en la misma instancia.
==================main================
{'key': {'HOLA': 'adios'}, 'key2': {'HOLA2': 'adios2'}}
Pero si ejecuto el main2.py....
==================main2================
{'key3': {'HOLA3': 'adios'}}
Como se ve, las keys creadas en el main.py no se mantienen. Esto es porque en el main2.py hago un
from listClients import ListClients
Haciendo que se cree otra instancia de la clase, cuya instancia no tiene los objetos creados por el archivo main.py
Mi pregunta es, si se puede hacer que al ejecutar el main2.py y se añade el "key3" cuando hago un print de clients salg así
{'key': {'HOLA': 'adios'}, 'key2': {'HOLA2': 'adios2'},'key3': {'HOLA3': 'adios'}}
Se que la solucion es un JSON, pero no lo quiero almacenar en un JSON pues los datos que voy a almacenar son objectos Sockets (SSLSockets) y estos no se pueden serializar para añadir a un archivo JSON.
Se puede hacer lo que quiero de alguna manera?? Gracias.