我有一个基类,它包含一些商业属性,这些属性在初始化时作为字典传递给它,然后添加到实例的字典中:
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属性中去掉字符串,当然不能添加。有没有办法只访问属于各自派生类的实例的属性?