Yeah, I see now how it works in python, i'll use the `None` approach. 

However even after reading the explanation for this behavior, I still can't see how it's anything other than a design flaw in python.  I can't think of any justification for why it *should* work that way.  Obviously it doesn't have to, since it works the "expected" way in other languages (the default is evaluated at function call time).