> I think that this behaviour is a little unintuitive, and by a little I > mean a lot.
Thanks for acknowledging it. > I question that it is "much more common". How do you know? Where's your > data? I did a dumb grep of my Python25/Lib folder and found 33 occurances of the first pattern above. (Use None as the default value, then check for None and assign empty list/dict) Although I spent at least double the amount of time looking for the second pattern, I found no occurances. (Use dict/list as default value and modify it in place.) Every single function that used a list or dict as a default value treated these variables as read-only. However, I did find two new ways to accomplish the above (further violating the Zen). /c/Python25/Lib/site-packages/wx-2.8-msw-ansi/wx/lib/ customtreectrl.py: def FillArray(self, item, array=[]): if not array: array = [] /c/Python25/Lib/site-packages/wx-2.8-msw-ansi/wx/lib/floatcanvas/ FloatCanvas.py: def __init__(self, ObjectList=[], InForeground = False, IsVisible = True): self.ObjectList = list(ObjectList) --Buck -- http://mail.python.org/mailman/listinfo/python-list