Hallvard B Furuseth <[EMAIL PROTECTED]> wrote:
> Does this class need anything more?
> Is there any risk of a lookup loop?
> Seems to work...
>
> class attrdict(dict):
> """Dict where d['foo'] also can be accessed as d.foo"""
> def __init__(self, *args, **kwargs):
> self.__dict__ = self
> dict.__init__(self, *args, **kwargs)
> def __repr__(self):
> return dict.__repr__(self).join(("attrdict(", ")"))
The problem is mostly that, given an instance a of attrdict, whether you
can call (e.g.) a.update(foo) depends on whether you ever set
a['update'], making the whole program extremely fragile -- a very high
price to pay for some modest amount of syntax sugar.
Alex
--
http://mail.python.org/mailman/listinfo/python-list