【发布时间】:2014-09-05 04:09:12
【问题描述】:
在讨论this answer 时,我们意识到元组没有__reversed__ 方法。我的猜测是创建迭代器需要改变元组。然而,元组与reversed 配合得很好。为什么不能使 reversed 使用的方法也适用于 __reversed__?
>>> foo = range(3)
>>> foo
[0, 1, 2]
>>> list(foo.__reversed__())
[2, 1, 0]
>>> foo
[0, 1, 2]
>>> bar = (0, 1, 2)
>>> list(bar.__reversed__())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute '__reversed__'
>>> reversed(bar)
<reversed object at 0x10603b310>
>>> tuple(reversed(bar))
(2, 1, 0)
【问题讨论】:
标签: python iterator tuples immutability reverse