Doh. Thanks. This does the trick, but it gives me the instance location. I
assumed this is because there is no __str__ method defined, but when I
added a __str__ method it didn't change anything. Probably didn't implement
the __str__ method correctly, but since I didn't even get an error, not
sure this was even the problem. (Pretty sure, for example, that I shouldn't
always be referencing the head node.)

def __str__(self):
    return "Node letter is %s" % (self.root[0])

for c in mytrie.items():
    print c
   ...:
<bound method Trie.items of <trie.Trie instance at 0x1010dc710>>
<bound method Trie.items of <trie.Trie instance at 0x1010dca70>>

thanks again,
Maria


On Thu, Aug 29, 2013 at 4:40 PM, Cris Ewing <[email protected]> wrote:

> I expect that the problem here is that you are attempting to iterate over
> the method itself, rather than its result.  You'd need to call the method
> to do that:
>
>   for c in mytrie.items():
>       print c
>
> hth
>
> c
>
> On Aug 29, 2013, at 4:38 PM, Maria McKinley wrote:
>
> Hello,
>
> I hope someone on this list doesn't mind answering what I think is a quick
> question. I have been playing around with the python code found here:
>
> http://en.wikipedia.org/wiki/Trie#A_Python_version
>
> I can't get the iterator to work, and I wonder if I'm not calling it
> correctly. I thought once I made my object, and added stuff to it, I could
> just do this:
>
> for c in mytrie.items:
>     print c
>
> but I get this error:
>
> TypeError: 'instancemethod' object is not iterable
>
> What am I doing wrong?
>
> thanks,
> Maria
>
>
> Cris Ewing
> --------------------------------------------------
> Principal, Cris Ewing, Developer LLC
> http://www.crisewing.com
> [email protected]
> 1.206.724.2112
>
>


-- 
Maria Mckinley
Software Developer with Bonus SysAdmin Experience
www.mariakathryn.net
www.linkedin.com/in/mariamckinley

Reply via email to