[Python-Dev] pprint and list/tuple/dict subclasses (original) (raw)

Fred L. Drake, Jr. fdrake at acm.org
Tue Dec 2 14🔞54 EST 2003


Hunter Peress writes:

I see the arguments,but the following code works fine. so what exactly is the issue?

The code doesn't work when the repr of the subclass instance should be wrapped:

#!/usr/bin/python import sys,commands,os,re,string from pprint import pprint as ppr

class t(list): pass

inst = t() inst.append(1) inst.append({2:3}) inst.append([4,5,6,[7,8]])

Change the last line to:

for i in range(10): inst.append(range(10))

and what you get is:

[1, {2: 3}, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

(wrapped by pasting into my mail client), but what's expected is:

[1, {2: 3}, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]

-Fred

-- Fred L. Drake, Jr. PythonLabs at Zope Corporation



More information about the Python-Dev mailing list