title: Python class, data structure and proper architecture
body: <p>I'm writing a program, which request user information from different services, puts them together in some ways. manages stuff and does some slack interaction.
  All my python projects get problematic at a certain size. imports start to become recursive and handling data around becomes annoying. </p>
  
  <p>A quick example of a problem I just come across can be shown with this simple example. I have a main module (here A) which creates the main objects (singletons).
  These objects need to call functions from each other, so I use main as a connector. In this given example I don't understand when B is created the list that it requests from A is (None) NoneType. The getter function is not necessarily the way I go, but it helped in another situation. Do you have any tips, reads to point, how to structure middle-sized python programs. Thanks!</p>
  
  <pre><code>import B
  
  some_list = None
  b = None
  
  def get_list():
      return some_list
  
  if __name__ == "__main__":
      some_list = [1,2,3]
      b = B.B()
      print b.my_list
  </code></pre>
  
  <p>And module B</p>
  
  <pre><code>from A import get_list
  
  class B:
      def __init__(self):
          self.my_list = get_list().map(lambda v : v * 2) # CRASH HERE!
  </code></pre>