title: __new__ method giving error object.__new__() takes exactly one argument (the type to instantiate)
body: <p>why the following code is giving error? </p>
  
  <pre><code>class Foo:
      def __new__(cls, *args, **kwargs):
          print("Creating Instance")
          instance = super(Foo, cls).__new__(cls,*args, **kwargs)
          return instance
  
      def __init__(self, a, b):
          self.a = a
          self.b = b
  
  z= Foo(2,3)
  </code></pre>
  
  <p>it is giving the following error</p>
  
  <pre><code>TypeError: object.__new__() takes exactly one argument (the type to instantiate)
  </code></pre>