我有一个包含数字属性的基类,这些属性在初始化时作为字典简单地传递给它,然后添加到实例的字典中:
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 属性的字符串,当然不能添加。有没有办法只访问属于各自派生类的实例的属性?
牧羊人nacy
慕容森
相关分类