title: Ensure that only one instance of a class gets run
body: <p>I have an underlying class which I want to place in some code.  I only want it to be instantiated or started once for a given app although it might be called many times..  The problem with the code below is that LowClass is started over and over again.  I only want it to start once per test..</p>
  
  <pre><code>import logging
  
  class LowClass:
  
      active = False
  
      def __init__(self):
          self.log = logging.getLogger()
          self.log.debug("Init %s" % self.__class__.__name__)
          if self.active:
              return
          else:
              self.active = True
          self.log.debug("Now active!")
  
  class A:
      def __init__(self):
          self.log = logging.getLogger()
          self.log.debug("Init %s" % self.__class__.__name__)
          self.lowclass = LowClass()
  
  class B:
      def __init__(self):
          self.log = logging.getLogger()
          self.log.debug("Init %s" % self.__class__.__name__)
          self.lowclass = LowClass()
  
  class C:
      def __init__(self):
          self.log = logging.getLogger()
          self.log.debug("Init %s" % self.__class__.__name__)
          self.a = A()
          self.b = B()
  
  
  class ATests(unittest.TestCase):
      def setUp(self):
          pass
  
      def testOne(self):
          a = A()
          b = B()
  
      def testTwo(self):
          c = C()
  </code></pre>
  
  <p>Thanks for pointing out my problem!!  </p>