count strangeness

Roy Smith roy at panix.com
Sun May 22 09:36:51 EDT 2011


In article <ira8ti$6no$1 at dont-email.me>,
 James Stroud <jstroud at mbi.ucla.edu> wrote:

> tal 65% python2.7
> Python 2.7.1 (r271:86832, May 21 2011, 22:52:14)
> [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> py> class C(object):
> ...   def __init__(self):
> ...     self.data = []
> ...   def doit(self, count=0):
> ...     for c in self.data:
> ...       count += c.doit(count)
> ...     count += 1
> ...     print count
> ...     return count
> ...
> py> c = C()
> py> c.data.extend([C() for i in xrange(10)])
> py> c.doit()

I have no idea what this is *supposed* to be doing, so let me toss out 
some general debugging ideas;

1) What do you expect [C() for i in xrange(10)] to return?  Does it?  
Run that part in isolation and see if it does.

2) What do you expect c.data.extend([...]) to return?  Does it?

3) What do you expect c.doit() to return for trivial inputs?  Does it?  
Try calling it with a count of 0, 1, and 2, and see if you get the 
result you expect.

In other words, break the problem down into smaller pieces and make sure 
each piece works in isolation.  When you find some little piece which 
isn't doing what you expect, it'll be much easier to debug than trying 
to debug the whole thing at once.



More information about the Python-list mailing list