питон, наследование, метод super ()
Я новичок в Python, у меня есть код ниже, который я просто могуне могу работать: - Это наследование, у меня есть базовый класс круга, и я наследую это вcircle
класс (просто одиночное наследование здесь).
Я понимаю, что проблема вToString()
функция в пределахcircle
класс, конкретно линия,text = super(Point, self).ToString() +..
который требует по крайней мере один аргумент, но я получаю это:
AttributeError: 'super' object has no attribute 'ToString'
я знаюsuper
не имеетToString
атрибут, ноPoint
класс делает -
Мой код:
class Point(object):
x = 0.0
y = 0.0
# point class constructor
def __init__(self, x, y):
self.x = x
self.y = y
print("point constructor")
def ToString(self):
text = "{x:" + str(self.x) + ", y:" + str(self.y) + "}\n"
return text
class Circle(Point):
radius = 0.0
# circle class constructor
def __init__(self, x, y, radius):
super(Point, self) #super().__init__(x,y)
self.radius = radius
print("circle constructor")
def ToString(self):
text = super(Point, self).ToString() + "{radius = " + str(self.radius) + "}\n"
return text
shapeOne = Point(10,10)
print( shapeOne.ToString() ) # this works fine
shapeTwo = Circle(4, 6, 12)
print( shapeTwo.ToString() ) # does not work