Я пытаюсь создать базовый абстрактный класс с механизмом сохранения множества всех созданных экземпляров.Наследование атрибута set class в python
class Basic(object):
__metaclass__ = ABCMeta
allInstances = set()
def __init__(self, name):
self.allInstances.add(self)
def __del__(self):
self.allInstances.remove(self)
Проблема заключается в том, что набор allInstances
сохраняет экземпляры всех дочерних классов. Должен ли я добавлять эти строки для каждого дочернего класса отдельно или есть способ создавать наборы для каждого дочернего класса в базовом классе?
Мне нравится Marty Alchin-х [шаблон плагина] (http://martyalchin.com/2008/jan/10/simple-plugin-fra mework /) для таких вещей. –
Если вы хотите иметь отдельный атрибут класса для каждого подкласса, который должен быть частью метакласса (который может наследовать от 'ABCMeta'). – jonrsharpe
Интересно, когда я добавляю переменную целочисленного класса в мой класс 'Basic' (так же, как' allInstances' - он создается отдельно для каждого дочернего класса. Как это можно объяснить? – Azazell00