OOP : Trying to design a good class structure
<p>Follow up code snippet review question I posted: <a href="https://codereview.stackexchange.com/questions/143576/oop-designing-class-inheritances">https://codereview.stackexchange.com/questions/143576/oop-designing-class-inheritances</a></p>

<p>This is homework so off the bat I am not asking to do it for me but to clarify for me so that I understand.</p>

<p>Here is what the assignment said about the program I have to write:</p>

<p><strong>Required:</strong>
Write an OO Python Program showing how your sub-classes inherit from the super-class(es) You can have one class (preferred but not a must) or two or more super classes.</p>

<p>What I have to do is write a oo python program showing sub-classing inherited by a class or two or more superclasses. The program has to be about shapes. As an example of what I mean by that is:</p>

<p>Shape: Square</p>

<p>Attributes:</p>

<ul>
<li>length </li>
<li>width</li>
</ul>

<p>Methods:</p>

<ul>
<li>area</li>
<li>perimeter</li>
</ul>

<p>I have more shapes of course but from that I find the common attributes and methods from all the shapes and make superclasses and sup-classes.</p>

<p>My super classes are like: 2dShapes, circles and 3dShapes. My sub-classes are like length and width. My methods are area and perimeter. Note I am rambling at this point. The code snippet below does not show this instead I was thinking about making a superclass for attributes and methods and than sub-classes for the shapes? maybe?</p>

<p>Question: is this a good class structure? Is there a better way to structure the classes here? Here is an example of what I'm thinking about how to do this.</p>

<pre><code>class Shapes(attributes):
    def __init__(self):
        attributes.__init__(self)
        # not sure how to go on to make the attributes like height and length, radius ect. Maybe like this???
    def height(self):
        raise NotImplementedError # again this program is not supose to actually do anything. The program is just for us to understand inheritance with classes and super classes.

class 2dShapes(Shapes):
    class Square(self):
        def height(self):
            # ???
</code></pre>

<p>So at this point I am so confused about where to start. Also I am super new to python so be gentle to me  :p</p>