Почему object .__ new__ работает по-разному в этих трех случаях

из вопросаПочему или, скорее, как object .__ new__ работает по-разному в этих двух случаях?

автора интересовало не почему, а скорее как.

Я бы очень хотел понять, почему, в частности:

почему нетobject.__init__ не принимает печатаемых параметров вместоobject.__new__ (in testclass1)

почему не возникает ошибка для testclass3? (поскольку он не требует никаких аргументов, кроме себя)

код

>>> class testclass1(object):
    ...     pass
    ... 

>>> class testclass2(object):
    ...     def __init__(self,param):
    ...             pass
    ... 

>>> a = object.__new__(testclass1, 56)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: object.__new__() takes no parameters

>>> b = object.__new__(testclass2, 56)

>>> b
    <__main__.testclass2 object at 0x276a5d0>

>>> class testclass3(object):
    ...     def __init__(self):
    ...             pass
    ... 

>>> c = object.__new__(testclass3, 56)

>>> c
    <__main__.testclass3 object at 0x276a790>

>>> c1 = object.__new__(testclass3)

>>> c1
    <__main__.testclass3 object at 0x276a810>

Ответы на вопрос(1)

Ваш ответ на вопрос