class stepper:
def __getitem__(self, i):
return self.data[i]
X = stepper() # X is a stepper object
X.data = "Spam"
print X[1] # indexing calls __getitem__
for item in X: # for loops call __getitem__
print item, # for indexes items 0..N
print 'p' in X # all call __getitem__ too
print [c for c in X] # list comprehension
print map(None, X) # map calls
(a,b,c,d) = X # sequence assignments
print a, c, d
print list(X), tuple(X), ''.join(X)
(['S', 'p', 'a', 'm'], ('S', 'p', 'a', 'm'), 'Spam')