Python 如何用多重继承覆盖`\uuuu new`?

Python 如何用多重继承覆盖`\uuuu new`?,python,new-operator,multiple-inheritance,Python,New Operator,Multiple Inheritance,我如何编写一个默认的\uuuuu new\uuuuu,并做一些如下的小改动: class A: def __new__(cls, *args, **kwargs): retval = super().__new__(cls, *args, **kwargs) retval.tree_parent = None return retval class B(A): def __init__(self, x): self

我如何编写一个默认的
\uuuuu new\uuuuu
,并做一些如下的小改动:

class A:
    def __new__(cls, *args, **kwargs):
        retval = super().__new__(cls, *args, **kwargs)
        retval.tree_parent = None
        return retval

class B(A):
    def __init__(self, x):
        self.x = x

b = B(1)
由于多态链中的其他类,我得到了传递的参数的错误,这些参数不在该类的控制范围内:

TypeError: object() takes no parameters

默认的
\uuuu new\uuuu
可以像在
traitlets
模块中一样编写:

def __new__(cls, *args, **kwargs):
    # This is needed because object.__new__ only accepts
    # the cls argument.
    new_meth = super(HasDescriptors, cls).__new__
    if new_meth is object.__new__:
        inst = new_meth(cls)
    else:
        inst = new_meth(cls, *args, **kwargs)
    # Do something with inst.
    return inst

我很惊讶有人投票决定结束这场比赛。为什么这会偏离主题呢?对问题的兴趣和可靠的例子都投了赞成票。