У меня есть базовый класс, который содержит числовые атрибуты, которые просто передаются ему при инициализации в качестве словаря, а затем добавляются в словарь экземпляра:
class baseclass(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
def calcValue(self):
return sum(vars(self).values())
Теперь у меня есть извлеченный класс из этого класса, которыйдобавляет дополнительные атрибуты к классу, например;
class childclass(baseclass):
def __init__(self, stringValue, **kwargs):
super(childclass, self).__init__(kwargs)
self.name = stringValue
Теперь я хотел бы иметь функцию в моем базовом классе, которая выполняет итерацию только по всем атрибутам, которые были добавлены в класс, но не те, которые были добавлены как дочерниеатрибутов.Например, если я создаю экземпляр дочернего класса следующим образом:
instance = childclass("myname", a=1, b=2, c=3)
, а затем вызываю метод calcValue, он должен вернуть 1 + 2 + 3 = 6
instance.calcValue()
, но так какvars (self) вернет полный словарь, исключая строку из атрибута childclass, который, конечно, затем не может быть добавлен.Есть ли способ получить доступ только к атрибутам экземпляра, принадлежащим соответствующему удаленному классу?