Python Glossary English

Python 3.3+typesпонятие

types.MappingProxyType

пространства имён

Представление словаря только для чтения: изменить через него нельзя, но правки исходного словаря видны сразу. Так устроен __dict__ класса.

Синтаксис

types.MappingProxyType(mapping)

Прокси — не копия и не заморозка. Кто держит исходный словарь, по-прежнему может его менять, и прокси это покажет; изменяемые значения внутри (списки) тоже правятся свободно. Подходит, чтобы отдать наружу настройки модуля без права записи. Нужна независимая копия — dict(proxy); нужен неизменяемый словарь — frozendict в 3.15 или кортеж пар.

Примеры

from types import MappingProxyType
settings = {'debug': False}
view = MappingProxyType(settings)
try:
    view['debug'] = True
except TypeError:
    print('TypeError')  # → TypeError
settings['debug'] = True
print(view['debug'])  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности