title: issue with singleton python call two times __init__
body: <p>I have a singleton like this</p>
  
  <pre><code>class Singleton:
  
      class __impl:
          def __init__(self):
              print "INIT"
  
      __instance = None
  
      def __init__(self):
          # Check whether we already have an instance
          if Singleton.__instance is None:
              Singleton.__instance = Singleton.__impl()
  
          # Store instance reference as the only member in the handle
          self.__dict__['_Singleton__instance'] = Singleton.__instance
  
      def __getattr__(self, attr):
          """ Delegate access to implementation """
          return getattr(self.__instance, attr)
  
      def __setattr__(self, attr, value):
          """ Delegate access to implementation """
          return setattr(self.__instance, attr, value)
  </code></pre>
  
  <p>When I made several instances of Singleton I get two calls to <strong>init</strong> , I mean "INIT" is printed two times, and I supose that it shouldn't happened</p>
  
  <p>Somebody has an idea of what is wrong with this or has a better way to implement this??</p>