Шаг 96.
Python: тонкости программирования. Общие структуры данных Python. Словари ... . types.MappingProxyType - обертка для создания словарей только для чтения

    На этом шаге мы рассмотрим назначение этого класса.

    MappingProxyType - это обертка стандартного словаря, которая предоставляет доступ только для чтения данных обернутого словаря.


См. документацию Python "types.MappingProxyType": https://docs.python.org/3/library/types.html.

    Этот класс был добавлен в Python 3.3 и может использоваться для создания неизменяемых версий словарей.

    Например, он может быть полезен, если требуется вернуть словарь, передающий внутреннее состояние из класса или модуля, при этом препятствуя доступу к этому объекту для записи. Использование MappingProxyType позволяет вводить эти ограничения без необходимости сначала создавать полную копию словаря.

>>> from types import MappingProxyType
>>> writable = {'один': 1, 'два': 2} # доступный для обновления
>>> read_only = MappingProxyType(writable)
# Этот представитель/прокси с доступом только для чтения:
>>> read_only['один']
1
>>> read_only['один'] = 23
Traceback (most recent call last):
.    .    .    .
TypeError: 'mappingproxy' object does not support item assignment
# Обновления в оригинале отражаются в прокси:
>>> writable['один'] = 42
>>> read_only
mappingproxy({'один': 42, 'два': 2})

    На следующем шаге мы подитожим изученный материал.




Предыдущий шаг Содержание Следующий шаг