Nick Craig-Wood wrote:
Scott David Daniels <[EMAIL PROTECTED]> wrote:
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...
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!

I could have sworn I tested this, but I must have accidentally tested h.a rather than h['a']. I don't know why it doesn't work either. For example:

    def gattr(*args): return getattr(*args)
    def sattr(*args): return setattr(*args)
    class Hash(object):
         def __init__(self, **kwargs):
             for key,value in kwargs.items():
                 setattr(self, key, value)
         __getitem__ = gattr
         __setitem__ = sattr

does work.

--Scott David Daniels
[EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to