inheritance in python 2.7.x

inheritance, python, super

Solution

Considering your indentation is correct then in Python2 a class should inherit from `object`, otherwise it would be considered as a classic class. And you can't use `super` on a classic class.

So, if `Quad` is defined like this, then it is wrong:

class Quad:
    def __init__(self, x):
       pass

And instantiating `Square` will raise error like this:

>>> Square(12)
    ...
    super(Square, self).__init__(linesValue)
TypeError: must be type, not classobj

Change `Quad` to inherit from `object`:

class Quad(object):
    def __init__(self, x):
       print x

Demo:

>>> Square(12)
12
<__main__.Square object at 0x93e286c>

Problem

I did this code: ``` class Square(Quad): def __init__(self, linesValue): """Calls the builder in quad (same)""" super(Square, self).__init__(linesValue) ``` then It said I have to send type as first arg, so I did this: ``` class Square(Quad): def __init__(self, linesValue): """Calls the builder in quad (same)""" super(type(Square), self).__init__(linesValue) ``` then it said obj must be instance of subinstance of class, and as you can see Square(Quad) it is.

Original source