我刚开始学习Python,我担心我不理解正确使用Class和Inheritance。在下面的代码中,我试图创建一个定义项的常规属性的类。然后我想使用另一个类添加更多属性,同时保留项的先前定义的属性。
class GeneralAttribute :
def __init__(self, attribute1, attribute2, attribute3) :
self.Attribute1 = attribute1
self.Attribute2 = attribute2
self.Attribute3 = attribute3
class SpecificAttribute(GeneralAttribute) :
def __init__(self, attribute4, attribute5, attribute6, attribute7) :
self.Attribute4 = attribute4
self.Attribute5 = attribute5
self.Attribute6 = attribute6
self.Attribute7 = attribute7
item = GeneralAttribute(7, 6, 5)
item = SpecificAttribute(1, 2, 3, 4)
print item.Attribute1
# This leads to an error since Attribute1 is no longer defined by item.
答案 0 :(得分:2)
这不是继承如何运作的。你不要单独实例化它们;关键是你只是实例化了SpecificAttribute,而已经也是一个GeneralAttribute,因为继承是一个" is-a"关系。
为了启用此功能,您需要在SpecificAttribute中调用GeneralAttribute Cannot resolve keyword '1' into field.
方法,并使用__init__
进行调用。
super