Scott David Daniels <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> -- http://www.craig-wood.com/nick -- http://mail.python.org/mailman/listinfo/python-list