title: How to initialise class attributes?
body: <p>I currently have the following two ways:</p>
  
  <pre><code>class Venue:
      store = Database.store()
      ids = [vid for vid in store.find(Venue.id, Venue.type == "Y")]
  
      def __init__(self):
          self.a = 1
          self.b = 2
  </code></pre>
  
  <p>OR</p>
  
  <pre><code>class Venue:
  
      @classmethod
      def set_venue_ids(cls):
          store = Database.store()
          cls.ids = [vid for vid in store.find(Venue.id, Venue.type == "Y")]
  
      def __init__(self):
          self.a = 1
          self.b = 2
  </code></pre>
  
  <p>And before using/instantiating the class I would call:</p>
  
  <pre><code>Venue.set_venue_ids()
  </code></pre>
  
  <p>What would be the correct way of achieving this? </p>
  
  <p>If it's the first way, what would I do if the instantiation of the attribute required more complex logic that could be done more simply through the use of a function?</p>
  
  <p>Or is there an entirely different way to structure my code to accomplish what I'm trying to do?</p>