[Python-ideas] Revisiting Immutable Mappings

Cameron Simpson cs at cskk.id.au
Wed Oct 10 22:01:29 EDT 2018


On 10Oct2018 20:25, Philip Martin <philip.martin2007 at gmail.com> wrote:
>Steven, that's a great idea, and I would be 100% up for your suggestion to
>have types.MappingProxyType renamed to frozendict.

I'm not for the rename, myself. Though I'd not be against a frozendict 
factory in builtins, a tiny shim for MappingProxyType.

>However, the differences
>in the behavior of MappingProxyType's constructor versus dict's would make
>the API's behavior confusing IMO. For example, MappingProxyType(x=5, y=10)
>throws a TypeError. I don't think most people would expect this.

Well, if it were called frozendict, indeed not. It should act like dict.

So:

  def frozendict(**kw):
      return MappingProxyType(kw)

You could make an argument for that (or a slightly heftier version 
accepting the various things dict accepts). Or... you could just keep 
such a thing in your personal kit as a trivial way to spell 
"frozendict". One could argue for the above as a nice example to live in 
the docs perhaps.

But not everything needs a special name.

Cheers,
Cameron Simpson <cs at cskk.id.au>


More information about the Python-ideas mailing list