我正在使用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)
,但仍为()
!
我做错了什么,或者这是否需要用哈希做什么?
答案 0 :(得分:1)
你做错了与散列无关的事情。元组是不可变的,这意味着它们不会改变。致电tuple
时,您会创建一个新的元组。然后,您分配了self
,它是一个函数参数,因此是一个局部变量。所做的就是忘记调用add
方法的对象。然后该方法返回,导致删除新的元组。
顺便问一下,你为什么要制作名单?可以添加元组。