Py学习  »  Python

基类中非继承属性上的python循环

Torilla • 5 年前 • 1313 次点击  

我有一个基类,它包含一些商业属性,这些属性在初始化时作为字典传递给它,然后添加到实例的字典中:

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属性中去掉字符串,当然不能添加。有没有办法只访问属于各自派生类的实例的属性?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40915
 
1313 次点击  
文章 [ 2 ]  |  最新文章 5 年前