pre-PEP generic objects
Nick Craig-Wood
nick at craig-wood.com
Thu Dec 2 04:30:02 EST 2004
Scott David Daniels <Scott.Daniels at Acm.Org> wrote:
> Nick Craig-Wood wrote:
> > class Hash:
> > def __init__(self, **kwargs):
> > for key,value in kwargs.items():
> > setattr(self, key, value)
> > def __getitem__(self, x):
> > return getattr(self, x)
> > def __setitem__(self, x, y):
> > setattr(self, x, y)
>
> You can simplify this:
> class Hash(object):
> def __init__(self, **kwargs):
> for key,value in kwargs.items():
> setattr(self, key, value)
> __getitem__ = getattr
> __setitem__ = setattr
That doesn't work unfortunately...
>>> class Hash(object):
... def __init__(self, **kwargs):
... for key,value in kwargs.items():
... setattr(self, key, value)
... __getitem__ = getattr
... __setitem__ = setattr
...
>>> h=Hash(a=1,b=2)
>>> h.a
1
>>> h['a']
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: getattr expected at least 2 arguments, got 1
>>>
I'm not exactly sure why though!
--
Nick Craig-Wood <nick at craig-wood.com> -- http://www.craig-wood.com/nick
More information about the Python-list
mailing list