“Nomes de todos os métodos em pythonm de introspecção de classe” Respostas de código

Nomes de todos os métodos em pythonm de introspecção de classe

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

Nomes de todos os métodos em pythonm de introspecção de classe

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

Nomes de todos os métodos em pythonm de introspecção de classe

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

Respostas semelhantes a “Nomes de todos os métodos em pythonm de introspecção de classe”

Perguntas semelhantes a “Nomes de todos os métodos em pythonm de introspecção de classe”

Mais respostas relacionadas para “Nomes de todos os métodos em pythonm de introspecção de classe” em Python

Procure respostas de código populares por idioma

Procurar outros idiomas de código