在python中使用元组继承

时间:2017-08-10 10:09:25

标签: python inheritance tuples

我正在使用python继承,但是当我尝试修改元组的属性时卡住了。这就是我所做的:

class MyTuple(tuple):
    def __init__(self):
        super().__init__()
    def add(self,number):
        self = tuple(list(self)+[number])

现在我使用

x = MyTuple()
x.add(23)

x未更改为(23),但仍为()! 我做错了什么,或者这是否需要用哈希做什么?

1 个答案:

答案 0 :(得分:1)

你做错了与散列无关的事情。元组是不可变的,这意味着它们不会改变。致电tuple时,您会创建一个新的元组。然后,您分配了self,它是一个函数参数,因此是一个局部变量。所做的就是忘记调用add方法的对象。然后该方法返回,导致删除新的元组。

顺便问一下,你为什么要制作名单?可以添加元组。