[BangPypers] recursion not working

Vivek Khurana hiddenharmony at gmail.com
Mon Mar 15 09:44:47 CET 2010

On Mon, Mar 15, 2010 at 1:54 PM, Kenneth Gonsalves <lawgon at au-kbc.org> wrote:
> hi,
> here is a function I have written:
> def getaccbal(accnt,bal):
>    account = Account.objects.get(pk=accnt)
>    if account.vouch:
>        bal = bal + getledgerob(account)
>    else:
>        children = account.account_set.all()
>        for child in children:
>            getaccbal(child.id,bal)
>    return bal
> if I try this with bal=0, on each recursion bal gets reset to 0 and I always
> get a 0 as a result. (If I put bal=20, result is 20). Must be something very
> simple that I am missing.

 Look at the else block. you are calling getaccbal but not receiving
the return value in any variable. Unless you receive the value in a
variable or pass bal as a reference, bal will contain the old value.
If you are using OOP then you should be calling geraccbal as self.bal


The hidden harmony is better than the obvious!!

More information about the BangPypers mailing list