recursive function return value problems

Steven D'Aprano steve at REMOVETHIScyber.com.au
Wed Dec 28 19:13:42 EST 2005


On Wed, 28 Dec 2005 16:05:30 -0800, randomtalk wrote:

> the final returned value is: []
> 
> the two values printed is (note i only have one print statement
> printing "print result",. however, in the actualality, it's printed
> twice):
> printing result:
> ['should be the only thing returned']
> printing result:
> []
> 
> therefore, sadly, i don't thinkg you've understand my problem
> correctly..

I wonder what you think your problem is.

You make TWO calls to reTest (the first one you explicitly call, then the
recursive call). 'print "printing result:"' happens in *every* call to
reTest, regardless of the argument, so of course it gets printed twice.
What did you expect to happen?

By the way, it is Bad with a capital B to shadow the names of built-in
functions as you do:

def reTest(bool): # don't use bool as the name of an argument!

bool is a built-in type. By using that name as an argument, you now
have made the built-in type inaccessible to your code, which is a potent
source of hard-to-track-down bugs.



-- 
Steven.




More information about the Python-list mailing list