为什么我的Python继承/超级示例不起作用?

为什么我的Python继承/超级示例不起作用?,python,inheritance,super,Python,Inheritance,Super,为什么以下操作不起作用: class CTest(tuple): def __init__(self,arg): if type(arg) is tuple: super(CTest,self).__init__((2,2)) else: super(CTest,self).__init__(arg) a=CTest((1,1)) print a 输出是(1,1),而我希望看到(2,2) 还有,为什么我会收

为什么以下操作不起作用:

class CTest(tuple):
    def __init__(self,arg):
        if type(arg) is tuple:
            super(CTest,self).__init__((2,2))
        else:
            super(CTest,self).__init__(arg)
a=CTest((1,1))
print a
输出是(1,1),而我希望看到(2,2)


还有,为什么我会收到一个弃用警告,该对象。init()不接受任何参数?我应该怎么做呢?

元组是不可变的,您必须重写
\uuu new\uuu

class CTest(tuple):
    def __new__(cls, arg):
        if type(arg) is tuple:
            return super(CTest, cls).__new__(cls, (2, 2))
        else:
            return super(CTest, cls).__new__(cls, arg)
现在,这项工作如预期的那样:

a = CTest((1,1))
print a
> (2, 2)

查看此文件以了解更多详细信息。

@Petradulin-从外观上看,是Python。更正,抱歉。它是Python。