On Thu, Mar 24, 2011 at 06:40, Jameson Quinn <jameson.qu...@gmail.com>wrote:
> "class attrdict" is a perennial dead-end for intermediate pythonistas who > want to save 3 characters/5 keystrokes for item access. Other languages such > as javascript allow "somedict.foo" to mean the same as "somedict['foo']", so > why not python? Well, there are a number of reasons why not, beginning with > all the magic method names in python. > > But saving keystrokes is still a reasonable goal. > Code is read far more often than it is written, so readability tends to count more than most other metrics. So what about a compromise? Allow "somedict..foo", with two dots, to take > that place. It still saves 2 characters (often 4 keystrokes; and I find even > ', "[", or "]" harder to type than "."). > I don't see the benefit, but maybe it'll save a few bytes in file size. Anyone reviewing your code now has to think "does this need one or two dots?" Anyways, why not just do something like this: class AttrDict(dict): def __getattr__(self, attr): return super(AttrDict, self).__getitem__(attr) >>> d = AttrDict() >>> d["a"] = 1 >>> d.a 1
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com