首页 > 解决方案 > 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')

这是正确的,但我想知道我是否在玩火,因为我还没有看到任何与修改元组相关的解决方案。

编辑:我知道你不能修改现有的元组,这将创建一个的新实例。我想我可能让人们对我的命名约定感到困惑。

标签: pythontuples

解决方案


__add__是当你这样做时调用的方法:

myTuple + ("newTupleItem1", "newTupleItem2")

所以这不会修改myTuple而是创建一个新tuple的,其内容是myTupleconcatenated with的内容("newTupleItem1", "newTupleItem2")

可以打印myTuple看看没有修改:

>>> myTuple
('item1', 2, 'item3', ['list1', 'list2'])

你可以检查一下myTupletupleModification它们不是同一个对象:

>>> myTuple is tupleModification
False

推荐阅读