Python Glossary English

Python 3.3+collectionsпонятие

collections.abc.MappingView

collections.abc — протоколы

Базовый класс представлений словаря (KeysView/ValuesView/ItemsView).

Синтаксис

isinstance(obj, collections.abc.MappingView)

Сам по себе MappingView почти пуст — он даёт только длину и внятный repr; операции множеств и проверку вхождения добавляют уже наследники KeysView, ValuesView и ItemsView, поэтому напрямую его почти не используют. Смысл такой проверки один: понять, что перед вами живой вид на чужой словарь, а не снимок — если нужен снимок, оберните результат в list() или set().

Примеры

import collections.abc as abc
print(isinstance({}.keys(), abc.MappingView))   # → True
print(isinstance({}.values(), abc.MappingView))   # → True
print(isinstance({}.items(), abc.MappingView))   # → True
d = {'a': 1, 'b': 2}; print(len(d.keys()))   # → 2
print(isinstance([], abc.MappingView))   # → False
print(issubclass(abc.ItemsView, abc.MappingView))   # → True

См. также

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