I think I know now where my problems come from. I spare you boring implementation code. The case look like this: I parse xml file something a like <X id="0"> <a>1 <\a> <a> 2 <\a>
<X id="1"> <a>3 <\a> <b> 4<\b> <\X> </X> <X id="2"> <a> <\a> <a> <\a> <X id="3"> <a> <\a> <b> <\b> <\X> </X> I succesfully constructlop-level X objects - I see all components when i print X0, X1 out with _repr_. I store my X's in memory. I had some problems with this. I googled, red newsgoup ad foud a solution that seemd to be perfect for me (...till now). In the parser- Y class a have a dictionary def __init__ self.mem={} I googled a way how to add elements to dict, I have read the code not the description below ##copied from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66516 def addItem(self,word,pagenumber): self.mem.setdefault(word,[]).append(pagenumber) ^^^^^^^^ So my dict looks like{ (id of top-level X) 0 : (the X itself) X0, 2 : X2, 4.......... } I wrote it some time and I was tired I haven't pay attention to the breackets at he beginning of outprint TOP LEVEL X WITH ID=0 [<class X> <---- <a>1<\a> <a>2<\a> <class X> <a >3<\a> <a> 4<\a> <\class X> <\class X>] One can clearly see it's a list :( Shame on me. I did a trick. If my X object is stored in a list and it's the only element of the list I can simply use it like: print v[0] print" isinstance(x,X)" print isinstance(v[0],X) print "type(x) is X" print type(v[0]) is X print v[0].__class__ print v[0].__class__.__name__ and results <class X> <----no [!!!! <a>1<\a> <a>2<\a> <class X> <a >3<\a> <a> 4<\a> <\class X> <\class X> isinstance(x,X) True :-) type(x) is X False :( ?? __main__.X X temporarily it solves my probblems I'm just curious why type can't handle the test. Thank you for help, and making me think :-) -- http://mail.python.org/mailman/listinfo/python-list