Steven Bethard wrote: > Steve Holden wrote: > >>Steven Bethard wrote: >> >>>Agreed. I really hope that Python 3.0 applies Raymond Hettinger's >>>suggestion "Improved default value logic for Dictionaries" from >>> http://wiki.python.org/moin/Python3%2e0Suggestions >>> >>>This would allow you to make the setdefault() call only once, instead >>>of on every lookup: >>> >>> class meh(dict): >>> def __init__(self, *args, **kwargs): >>> super(meh, self).__init__(*args, **kwargs) >>> self.setdefault(function=meh) >>> >>>STeVe >>> >> >>In fact, why not go one better and also add a "default" keyword >>parameter to dict()? > > > It's not backwards compatible: > > >>> dict(default=4) > {'default': 4} > > And I use the **kwargs form of the dict constructor often enough to hope > that it doesn't go away in Python 3.0. > Nyargle. Thanks, you're quite right, of course: I was focussing on the list-of-pairs argument style when I wrote that. So the best we could do is provide a subtype, defaultdict(default, *args, *kw).
It still seems to me that would be better than having to call a method (though I don't object to the method for use if the defaut must change dynamically). Maybe I just liked Icon tables too much. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list