#! /usr/bin/env python class A(list): def __init__(self, alist, n): list.__init__(self, alist) self.n = n
def __str__(self): return 'AS(%s, %i)' % (list.__str__(self), self.n) def __repr__(self): return 'AR(%s, %i)' % (list.__repr__(self), self.n) a = A(['x', 'y'], 7) print 1, a print 2, repr(a) print 3, list.__str__(a) print 4, list.__repr__(a) """ The output is: 1 AS(AR(['x', 'y'], 7), 7) 2 AR(['x', 'y'], 7) 3 AR(['x', 'y'], 7) 4 ['x', 'y'] Why is list.__str__(a) == "AR(['x', 'y'], 7)"? Note: The problem goes away if "list.__str__(a)" is replaced with "list.__repr__(self)". """ -- http://mail.python.org/mailman/listinfo/python-list