Python: Common Newbie Mistakes, Part 1
Ouch, that is one extremely non-user friendly feature going on there. The only reason it works at all is because most people use default for strings/numbers only.That functionality really should be changed for the next major python release, and have default evaluate each time the function is called - which is how 99.9% of people using it expect it to work.