当使用基类分配子类的属性时,会出现Python类继承问题

2024-03-28 13:15:31 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用基类创建子类属性时,我得到一个错误,子类没有我在基类方法中创建的成员。代码如下所示

class Base(object):
    def setAttributes(self, data):
        for key in data:
            self.key = data[key]

class Sub(Base):
    pass

data = {'id':1, 'name': 'Name'}
a = Sub()
Base.setAttributes(a, data)

print(a.id)

错误消息是:AttributeError:'Sub'对象没有属性'id'。

在python中有没有使用基类来分配子类属性的解决方案?你知道吗


Tags: 方法key代码selfiddatabase属性
1条回答
网友
1楼 · 发布于 2024-03-28 13:15:31

这与继承无关。您已将值赋给a.key而不是a.id。事实上,您已将所有值赋给a.key。你知道吗

我相信你想用setattr(self, key, data[key])代替self.key = data[key]。或者干脆完全取消循环并执行self.__dict__.update(data)。你知道吗

相关问题 更多 >