Проверьте, существует ли экземпляр класса во время выполнения - PullRequest
0 голосов
/ 04 января 2019

Мне нужно знать, как проверить, существует ли экземпляр данного класса во время выполнения.Поэтому мне нужно сделать взаимодействие между этим экземпляром и другими классами.Между этими классами нет связи (состав, агрегация и наследование).Так как же получить ссылку на этот класс, если он существует?

1 Ответ

0 голосов
/ 04 января 2019

Если вы просто хотите узнать, был ли (или сколько раз) экземпляр класса создан, просто оставьте счетчик в классе:

class Foo:
    counter = 0

    def __init__(self):
        Foo.counter += 1

Foo()
print(Foo.counter)

В качестве альтернативы, если вы хотите сохранить дескриптор для всех экземпляров (по ссылке), вместо этого сохраните self:

class Foo:
    classes = []

    def __init__(self):
        Foo.classes.append(self)

Foo()
print(Foo.classes[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...