Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.python
pprint, __repr__ and inheritance, how does it works?
Jorge Vargas
2/25/2008 12:20:00 PM
Hello list, I'm having a little bit of trouble making this all work together.
I have a base class in which I want to define the __repr__ for all
subclasses which in this case will be to output all the __dict__
atributes. Using [1] as reference I have come up with the following
but it has 2 problems, first the type call it's not generating valid
python code and second this doesn't seems to work with pprint as it's
just printing the string as a one-liner making it equivalente as
calling repr(obj)
from pprint import pprint
class node(object):
def __init__(self,a,b,c):
self.a,self.b,self.c = a,b,c
def __repr__(self):
# return str(type(self)) + "(" + repr(self.__dict__) + ')'
return "node(" + repr(self.__dict__) + ')'
class extendedNode(node):
def __init__(self,d,e):
self.d,self.e = d,e
def __repr__(self):
return "extendedNode(" + repr(self.__dict__) + ')'
print "big numbers are here to force the wrap"
nodes = node(11111111111,2,extendedNode(333333333333333,333333333333333))
print "not doing what I want"
pprint(nodes)
print "same as repr"
repr(nodes)
print "now with dicts"
nodes = {'a':11111111111,'b':2,'c':{'d':333333333333333,'e':333333333333333}}
print "works as it should"
pprint(nodes)
print "it's different indeed"
repr(nodes)
[1]
http://www.oreillynet.com/onlamp/blog/2007/11/pymotw_p...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
pprint, __repr__ and inheritance, how does it works?
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password