In both Python 2 and 3, the following code
class A(object):
pass
A(1)
expectedly raises the following exception
TypeError: object() takes no parameters
However, the following code
class A(object):
def __new__(cls, *args, **kwargs):
return super(A, cls).__new__(cls)
A(1)
Does not raise anything. How come?