Мне нужно инициализировать все слоты экземпляра с помощью None. Как получить все слоты производного класса?
Пример (который не работает):
class A(object):
__slots__ = "a"
def __init__(self):
# this does not work for inherited classes
for slot in type(self).__slots__:
setattr(self, slot, None)
class B(A):
__slots__ = "b"
Я мог бы использовать дополнительный атрибут класса, который содержит слоты (включая унаследованные) для всех классов, например
class A(object):
__slots__ = "a"
all_slots = "a"
def __init__(self):
# this does not work for inherited classes
for slot in type(self).all_slots:
setattr(self, slot, None)
class B(A):
__slots__ = "b"
all_slots = ["a", "b"]
но это кажется неоптимальным.
Любые комментарии приветствуются!
Приветствия
Jan