社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Torilla • 5 年前 • 1590 次点击  

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

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
 
1590 次点击  
文章 [ 2 ]  |  最新文章 5 年前