On 01/20/2014 04:08 PM, Chris Angelico wrote:
On Tue, Jan 21, 2014 at 7:09 AM, Charles Hixson
<charleshi...@earthlink.net> wrote:
# @note Instances can be created only from existing dicts.
## Class initializer.
# @param ddict The data dictionary to which this is a read only
# access.
# @throws TypeError if ddict is not a dict.
def __init__ (self, ddict = {}):
if not isinstance(ddict, dict):
raise TypeError("ddict must be a dict. It is " +
repr(ddict))
self._ddict = ddict
Instead of demanding that a dict (or dict subclass) be passed, why not
simply pass all args on to dict() itself? Is there a reason this won't
work?
def __init__(self, *args, **kwargs):
self._ddict = dict(*args, **kwargs)
ChrisA
It would work, as long as it would work for dict(), but I have been
expecting to use it in situations where it would be useful to have a
different access to the dict that would be writeable. So I didn't
bother. (Well, and took steps to ensure that it was being used in the
manner that I expected. So I'd know to change it if it were
appropriate.) It *would* make it more difficult for the class to test
it's creation arguments for sanity, though. (One could argue that
allowing read only access to an empty dict is violating sanity, but I
don't think in any dangerous way.) I do sometimes worry that using
isinstance excessively is overly expensive. Perhaps I should wrap them
with a test for debug mode.
--
Charles Hixson
--
https://mail.python.org/mailman/listinfo/python-list