python中超类的子类继承部分属性

时间:2018-10-17 14:33:09

标签: python python-3.x

嗨,我对python中超类的子类继承属性有疑问,我知道我们可以使用super inside属性来继承超类的属性。但是如果 我的子类只想继承部分属性?就像我的Company类的团队属性包含3个数据。 我只希望子类School具有与Company相同的部门数据,而没有软件或pm。我该怎么办?

import json

class Company:
    @property
    def team(self):
        return json.dumps(dict(department='20', software='120', pm='5'))

class School(Company):
    @property
    def team(self):
        j = super().team
        j = json.loads(j) 
        data = {**j, **dict(college='10', board_member='300')}
        return json.dumps(data)

g = Company()
vt = School()
print(g.team) #expected  {"department": "20", "software": "120", "pm": "5"}
print(vt.team) #expected  {"department": "20", "college": "10", "board_member": "300"}

0 个答案:

没有答案