Python class--Super variable

python

Solution

It looks like you already may have fixed the original error, which was caused by `super().__init__(x,y)` as the error message indicates, although your fix was slightly incorrect, instead of `super(Point, self)` from the `Circle` class you should use `super(Circle, self)`.

Note that there is another place that calls `super()` incorrectly, inside of `Circle`'s `ToString()` method:

        return super().ToString() + \
               ",{RADIUS=" + str(self.radius) + "}"

This is valid code on Python 3, but on Python 2 `super()` requires arguments, rewrite this as the following:

        return super(Circle, self).ToString() + \
               ",{RADIUS=" + str(self.radius) + "}"

I would also recommend getting rid of the line continuation, see the Maximum Line Length section of PEP 8 for the recommended way of fixing this.

Problem

The below piece of code is giving me a error for some reason, Can someone tell me what would be the problem.. Basically, I create 2 classes Point & Circle..THe circle is trying to inherit the Point class. ``` Code: class Point(): x = 0.0 y = 0.0 def __init__(self, x, y): self.x = x self.y = y print("Point constructor") def ToString(self): return "{X:" + str(self.x) + ",Y:" + str(self.y) + "}" class Circle(Point): radius = 0.0 def __init__(self, x, y, radius): super(Point,self).__init__(x,y) self.radius = radius print("Circle constructor") def ToString(self): return super().ToString() + \ ",{RADIUS=" + str(self.radius) + "}" if __name__=='__main__': newpoint = Point(10,20) newcircle = Circle(10,20,0) ``` Error: ``` C:\Python27>python Point.py Point constructor Traceback (most recent call last): File "Point.py", line 29, in <module> newcircle = Circle(10,20,0) File "Point.py", line 18, in __init__ super().__init__(x,y) TypeError: super() takes at least 1 argument (0 given) ```

Original source