[Python-ideas] Support other dict types for type.__dict__

Nick Coghlan ncoghlan at gmail.com
Tue Feb 28 01:26:38 CET 2012


On Tue, Feb 28, 2012 at 9:48 AM, Eric Snow <ericsnowcurrently at gmail.com> wrote:
> Such an approach could be applied to lists/tuples, sets/frozensets,
> strings/bytearrays, bytes/bytearrays, and any other pairings we
> already have.  Unless a frozendict were added as a standard type, dict
> would not have a match so an __immutable__() method would not be
> added.  In that case, trying to call dict.__immutable__() would be an
> AttributeError, as happens now.

Folks, before retreading this ground, please make sure to review the
relevant past history and decide what (if anything) has changed since
Barry proposed the freeze protocol 5 years ago and the PEP was
rejected: http://www.python.org/dev/peps/pep-0351/

While hypergeneralisation of this behaviour is tempting, it really
isn't a solid abstraction. It's better to make use case specific
design decisions that handle all the corner cases relating to mutable
vs immutable variants of *particular* container types. The issues you
have to consider when converting a list to a tuple are not the same as
those that exist when converting bytearray to bytes or a set to a
frozenset.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-ideas mailing list