diff options
Diffstat (limited to 'Demo/classes/Rev.py')
-rwxr-xr-x | Demo/classes/Rev.py | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/Demo/classes/Rev.py b/Demo/classes/Rev.py index c1874c6..467bd57 100755 --- a/Demo/classes/Rev.py +++ b/Demo/classes/Rev.py @@ -5,13 +5,13 @@ # # >>> for c in Rev( 'Hello World!' ) : sys.stdout.write( c ) # ... else: sys.stdout.write( '\n' ) -# ... +# ... # !dlroW olleH # # The .forw is so you can use anonymous sequences in __init__, and still -# keep a reference the forward sequence. ) +# keep a reference the forward sequence. ) # If you give it a non-anonymous mutable sequence, the reverse sequence -# will track the updated values. ( but not reassignment! - another +# will track the updated values. ( but not reassignment! - another # good reason to use anonymous values in creating the sequence to avoid # confusion. Maybe it should be change to copy input sequence to break # the connection completely ? ) @@ -19,14 +19,14 @@ # >>> nnn = range( 0, 3 ) # >>> rnn = Rev( nnn ) # >>> for n in rnn: print 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 range( 4, 6 ): nnn.append( n ) # update nnn +# ... +# >>> for n in rnn: print n # prints reversed updated values +# ... # 5 # 4 # 2 @@ -35,55 +35,55 @@ # >>> nnn = nnn[1:-1] # >>> nnn # [1, 2, 4] -# >>> for n in rnn: print n # prints reversed values of old nnn -# ... +# >>> for n in rnn: print n # prints reversed values of old nnn +# ... # 5 # 4 # 2 # 1 # 0 -# >>> +# >>> # # WH = Rev( 'Hello World!' ) # print WH.forw, WH.back # nnn = Rev( range( 1, 10 ) ) # print nnn.forw # print nnn -# +# # produces output: -# +# # Hello World! !dlroW olleH # [1, 2, 3, 4, 5, 6, 7, 8, 9] # [9, 8, 7, 6, 5, 4, 3, 2, 1] -# -# >>>rrr = Rev( nnn ) +# +# >>>rrr = Rev( nnn ) # >>>rrr -# <1, 2, 3, 4, 5, 6, 7, 8, 9> +# <1, 2, 3, 4, 5, 6, 7, 8, 9> from string import joinfields class Rev: - def __init__( self, seq ): - self.forw = seq - self.back = self - def __len__( self ): - return len( self.forw ) - def __getitem__( self, j ): - return self.forw[ -( j + 1 ) ] - def __repr__( self ): - seq = self.forw - if type(seq) == type( [] ) : - wrap = '[]' - sep = ', ' - elif type(seq) == type( () ) : - wrap = '()' - sep = ', ' - elif type(seq) == type( '' ) : - wrap = '' - sep = '' - else: - wrap = '<>' - sep = ', ' - outstrs = [] - for item in self.back : - outstrs.append( str( item ) ) - return wrap[:1] + joinfields( outstrs, sep ) + wrap[-1:] + def __init__( self, seq ): + self.forw = seq + self.back = self + def __len__( self ): + return len( self.forw ) + def __getitem__( self, j ): + return self.forw[ -( j + 1 ) ] + def __repr__( self ): + seq = self.forw + if type(seq) == type( [] ) : + wrap = '[]' + sep = ', ' + elif type(seq) == type( () ) : + wrap = '()' + sep = ', ' + elif type(seq) == type( '' ) : + wrap = '' + sep = '' + else: + wrap = '<>' + sep = ', ' + outstrs = [] + for item in self.back : + outstrs.append( str( item ) ) + return wrap[:1] + joinfields( outstrs, sep ) + wrap[-1:] |