“Nombres de todos los métodos en la clase Interrospect Pythonm” Código de respuesta

Nombres de todos los métodos en la clase Interrospect Pythonm

from collections import defaultdict
import weakref

class KeepRefs(object):
    __refs__ = defaultdict(list)
    def __init__(self):
        self.__refs__[self.__class__].append(weakref.ref(self))

    @classmethod
    def get_instances(cls):
        for inst_ref in cls.__refs__[cls]:
            inst = inst_ref()
            if inst is not None:
                yield inst

class X(KeepRefs):
    def __init__(self, name):
        super(X, self).__init__()
        self.name = name

x = X("x")
y = X("y")
for r in X.get_instances():
    print r.name
del y
for r in X.get_instances():
    print r.name
Xenophobic Xenomorph

Nombres de todos los métodos en la clase Interrospect Pythonm

import weakref

class A:
    instances = []
    def __init__(self, name=None):
        self.__class__.instances.append(weakref.proxy(self))
        self.name = name

a1 = A('a1')
a2 = A('a2')
a3 = A('a3')
a4 = A('a4')

for instance in A.instances:
    print(instance.name)
Xenophobic Xenomorph

Nombres de todos los métodos en la clase Interrospect Pythonm

import gc
for obj in gc.get_objects():
    if isinstance(obj, some_class):
        dome_something(obj)
Xenophobic Xenomorph

Respuestas similares a “Nombres de todos los métodos en la clase Interrospect Pythonm”

Preguntas similares a “Nombres de todos los métodos en la clase Interrospect Pythonm”

Más respuestas relacionadas con “Nombres de todos los métodos en la clase Interrospect Pythonm” en Python

Explore las respuestas de código populares por idioma

Explorar otros lenguajes de código