python - Tuple 类中“__add__”方法的使用
问题描述
python noob 在这里玩弄元组和列表的限制。
我没有问题,只是关于__methodname__
Tuple 类和/或一般情况下的方法使用的一般查询。
我知道您无法修改元组,为此,您必须将其转换为列表,修改所述列表,然后转换回元组,但我尝试了该__add__
方法并发现它有效。使用它来创建新的元组并修改现有元组有什么问题和限制?
代码:
myTuple = ('item1', 2, 'item3', ['list1', 'list2'])
tupleModification = myTuple.__add__(('newTupleItem1','newTupleItem2'))
这将输出以下内容:
('item1', 2, 'item3', ['list1', 'list2'], 'newTupleItem1', 'newTupleItem2')
这是正确的,但我想知道我是否在玩火,因为我还没有看到任何与修改元组相关的解决方案。
编辑:我知道你不能修改现有的元组,这将创建一个的新实例。我想我可能让人们对我的命名约定感到困惑。
解决方案
__add__
是当你这样做时调用的方法:
myTuple + ("newTupleItem1", "newTupleItem2")
所以这不会修改myTuple
而是创建一个新tuple
的,其内容是myTuple
concatenated with的内容("newTupleItem1", "newTupleItem2")
。
可以打印myTuple
看看没有修改:
>>> myTuple
('item1', 2, 'item3', ['list1', 'list2'])
你可以检查一下myTuple
,tupleModification
它们不是同一个对象:
>>> myTuple is tupleModification
False