title: Avoid creating a class instance in Python
body: <p>I ran into a small trouble when I was trying to write a small piece of code to avoid creating instance of a class in Python 2.7. The problem is that when I didn't extend object' and tried to raise an exception in the <code>'__new__'</code> method the <code>'__init__'</code> method just got called (which means the object was created fine) and the flow continued. But when I did extend 'object' things seemed to work as expected which was raising the exception. </p>
  
  <p>I would like to know what might be the reason for this. </p>
  
  <p>I couldn't find an answer in Stackoverflow, if you guys feel this is a duplicate and it would be better if you could point me to the right direction.</p>
  
  <pre><code>from classcreator import AbstractionException
  
  class test():
      def __new__(self):
          try:
              raise AbstractionException("Can't instantiate class")
          except AbstractionException:
              print ('OOPS !!! ')
  
      def __init__(self):
          self.name='Hello'
  
      def __str__(self):
          return self.name
  
  x=test()
  print(x)    
  </code></pre>