It works on mutable or inmutable sequences.
->>> chars = list(Rev('Hello World!'))
->>> print ''.join(chars)
+>>> Rev('Hello World!')
!dlroW olleH
The .forw is so you can use anonymous sequences in __init__, and still
confusion. Maybe it should be change to copy input sequence to break
the connection completely ? )
->>> nnn = range(3)
+>>> nnn = list(range(3))
>>> rnn = Rev(nnn)
->>> for n in rnn: print n
+>>> for n in rnn: n
...
2
1
0
>>> for n in range(4, 6): nnn.append(n) # update nnn
...
->>> for n in rnn: print n # prints reversed updated values
+>>> for n in rnn: n # prints reversed updated values
...
5
4
>>> nnn = nnn[1:-1]
>>> nnn
[1, 2, 4]
->>> for n in rnn: print n # prints reversed values of old nnn
+>>> for n in rnn: n # prints reversed values of old nnn
...
5
4
#
>>> WH = Rev('Hello World!')
->>> print WH.forw, WH.back
+>>> print(WH.forw, WH.back)
Hello World! !dlroW olleH
->>> nnn = Rev(range(1, 10))
->>> print nnn.forw
+>>> nnn = Rev(list(range(1, 10)))
+>>> print(nnn.forw)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
->>> print nnn.back
+>>> print(nnn.back)
[9, 8, 7, 6, 5, 4, 3, 2, 1]
->>> rrr = Rev(nnn)
->>> rrr
+>>> Rev(nnn)
<1, 2, 3, 4, 5, 6, 7, 8, 9>
'''