sublcassing dict without losing functionality
Peter Otten
__peter__ at web.de
Mon Nov 1 18:56:43 EST 2004
Steven Bethard wrote:
> simple. Modifying and using UserDict would give me some 60+ lines of code
Not tested beyond what you see:
>>> import UserDict as userdict
>>> class Dict(userdict.DictMixin, dict):
... def __setitem__(self, key, value):
... if key in self: raise ValueError("key already exists")
... super(Dict, self).__setitem__(key, value)
... def __init__(self, other=None, **kw):
... super(Dict, self).__init__()
... self.update(other, **kw)
...
>>> d = Dict({"one": 1}, one=2)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 7, in __init__
File "UserDict.py", line 155, in update
self.update(kwargs)
File "UserDict.py", line 147, in update
self[k] = v
File "<stdin>", line 3, in __setitem__
ValueError: key already exists
>>> d["one"] = 3
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 3, in __setitem__
ValueError: key already exists
>>>
Peter
More information about the Python-list
mailing list