title: Python OO program structure planning
body: <p>I'm a beginner in OOP and I want to create a program with three classes, A, B, and C. Each instance of the class is defined by a set of characteristics, Achar1, Achar2 etc.</p>
  
  <p>The program is supposed to create <em>uses</em> comprising of element of A, element of B and element of C with begin and end date. There are subclasses of A and B, so that some elements of A can only be connected to certain elements of B. The main functionality of the program is to list elements of A, B and C with their aributes, list <em>uses</em> and suggest new <em>uses</em> that would emply the instances of classes used the least to avoid repetition.</p>
  
  <p>My first instinct is to use three dictionaries A, B and C and a dictionary for uses. This seems intuitive and easy to import/export into json or similar. I tried to rewrite it to employ classes, but I can't see any gain in doing so: it's hard (?) to iterate over instances of classes and also they basically are dictionaries since this data doesn't need much else.</p>
  
  <p>What am I doing wrong? What can I gain from switching from dictionaries to objects?</p>
  
  <p>Edit: the code in question (dict-based) is <a href="https://github.com/098799/pypen/blob/master/pypen.py" rel="noreferrer">here</a>. The first version, where I tried to make it object oriented is <a href="https://github.com/098799/pypen/blob/22ad9e862eb5e69cfacdab17bf7fe934c63821c9/pypen.py" rel="noreferrer">here</a>.</p>