Jul-07-2021, 06:10 AM
(This post was last modified: Jul-07-2021, 06:10 AM by Gribouillis.)
There was a rejected PEP 416 to create a frozendict type. You can find there the arguments why it was rejected.
Also note the use of
There is also a frozendict module in Pypi. Could be worth checking.
Also note the use of
types.MappingProxyType()
to create a read-only view of an existing dictionary.Guido Van Rossum Wrote:On the other hand, exposing the existing read-only dict proxy as a built-in type sounds good to me. (It would need to be changed to allow calling the constructor.)
There is also a frozendict module in Pypi. Could be worth checking.
>>> import types >>> d = types.MappingProxyType({'foo': 1, 'bar': 10, 'spam': 100}) >>> >>> d mappingproxy({'foo': 1, 'bar': 10, 'spam': 100}) >>> d['bar'] 10 >>> d['bar'] = 3 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'mappingproxy' object does not support item assignment