elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ¿Como mantener el valor de una variable estatica de una clase, cuya clase es ejecutada en distintos archivos? | Python3
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como mantener el valor de una variable estatica de una clase, cuya clase es ejecutada en distintos archivos? | Python3  (Leído 2,205 veces)
Drakaris

Desconectado Desconectado

Mensajes: 286


Todo lo que puedas imaginar, lo puedes crear.


Ver Perfil
¿Como mantener el valor de una variable estatica de una clase, cuya clase es ejecutada en distintos archivos? | Python3
« en: 6 Marzo 2022, 01:09 am »

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
Código
  1. class ListClients:
  2.    clients = {}
  3.    @staticmethod
  4.    def add(key,value):
  5.        ListClients.clients[f"{key}"]=value
  6.  
  7.    @staticmethod
  8.    def get(key):
  9.        print(ListClients.clients[key])
  10.  
  11.    @staticmethod
  12.    def delete(key):
  13.        del ListClients.clients[key]
  14.  

main.py
Código
  1. from listClients import ListClients
  2. print("==================main================")
  3. ListClients.add("key",{"HOLA":"adios"})
  4. ListClients.add("key2",{"HOLA2":"adios2"})
  5. print(ListClients.clients)
  6.  

main2.py
Código
  1. from listClients import ListClients
  2. print("==================main2================")
  3. ListClients.add("key3",{"HOLA3":"adios"})
  4. print(ListClients.clients)
  5.  

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.
Código:
==================main================
{'key': {'HOLA': 'adios'}, 'key2': {'HOLA2': 'adios2'}}
Pero si ejecuto el main2.py....
Código:
==================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
Código
  1. 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í
Código:
{'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.


« Última modificación: 6 Marzo 2022, 01:20 am por Drakaris » En línea

Lo increible, no es lo que ves, sino como es
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Acceder a una variable privada de una clase desde otra clase
Programación C/C++
Alvaro093 4 29,974 Último mensaje 27 Enero 2012, 09:46 am
por wachi
Como sobre-escribir un método de una clase base en una clase heredada?
Programación C/C++
julian21931500 5 3,498 Último mensaje 25 Febrero 2015, 23:49 pm
por ivancea96
Clase pila estática « 1 2 »
Programación C/C++
GominaTilted 15 5,013 Último mensaje 31 Octubre 2019, 14:50 pm
por GominaTilted
llamar modulo dentro de una clase | Python3
Scripting
Drakaris 1 2,491 Último mensaje 13 Septiembre 2020, 16:23 pm
por tincopasan
Como mantener el valor de una variable al pasar de pagina
PHP
yoelrodguez 2 3,574 Último mensaje 30 Septiembre 2021, 19:02 pm
por El Benjo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines