"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo rastrear y recuperar variables de instancia de manera eficiente en clases de Python?

¿Cómo rastrear y recuperar variables de instancia de manera eficiente en clases de Python?

Publicado el 2024-11-09
Navegar:433

 How to Efficiently Track and Retrieve Instance Variables in Python Classes?

Seguimiento de instancias de clase para colección de variables

Mantener una lista de instancias para una clase en particular permite la recuperación eficiente de variables específicas de cada instancia en una etapa posterior del programa.

Enfoque de variable de clase

Un método adecuado para rastrear instancias de clase es utilizar un variable de clase. El siguiente ejemplo ilustra este enfoque:

class Foo:
    instances = []

    def __init__(self):
        self.x = {}
        Foo.instances.append(self)

Esta técnica crea una lista compartida de instancias dentro de la clase. A medida que se crea cada instancia, se agrega a la lista.

Recuperación de variables de instancia

Para recopilar x diccionarios de todas las instancias al final del programa, cree un nuevo diccionario:

foo_vars = {id(instance): instance.x for instance in Foo.instances}

Aquí, id() proporciona identificadores únicos para cada instancia, lo que permite la creación de un diccionario con ID de instancia como claves y x diccionarios como valores.

Lista compartida

El enfoque de variable de clase garantiza que sólo se mantiene una lista, instancias, en todas las instancias, independientemente de su número. Esto elimina la necesidad de realizar un seguimiento de listas individuales para cada instancia.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3