Протоколы в Python

Содержание
Введение
Превратить в словарь
Копировать словарь
Update: добавить один словарь к другому либо изменить значения
Iteration: перебор элементов словаря
Items: перебор кортежами из пар ключ-значение
in, not in, del
pprint: читаемый вывод
Похожие статьи

Введение

Набор операций, которые тип должен поддерживать для того чтобы создать протокол

Не должен быть определён как интерфейс или base class

Типы должны предоставлять функционирующую реализацию

Протокол Коллекции, в которых он применён
Container str, list, dict, range, tuple, set, bytes
Sized str, list, dict, range, tuple, set, bytes
Iterable str, list, dict, range, tuple, set, bytes
Sequence str, list, dict, tuple, bytes
Mutable Sequence list
Mutable Set set
Mutable Mapping dict

Контейнер должен поддерживать in и not in

item in container item not in container

Sized должен поддерживать len()

len(container)

Iteration должен уметь отдавать (yield) свои элементы по одному по запросу.

Например, их можно перебирать с помощью цикла for

for item in iterable: print(item)

Sequence должен поддерживать обращение к элементу по его индексу, нахождение индекса элемента, подсчёт числа элементов и построение обратной последовательности. Также все объекты, которые поддерживают протокол Sequence должны поддерживать Iterable, Sized и Container.

item = sequence[index] i = sequence.index(item) num = sequence.count(item) r = reversed(sequence)

Article author: Andrei Olegovich

Похожие статьи
Built-in Collections
Строки
f-string
format string
Списки []
list comprehension: Абстракция списка
Словари {:}
dict comprehension: Абстракция словаря
Множества {}
set comprehension: Абстракция множества
Кортежи ()
Протоколы
Итерация
Python
if, elif, else
Циклы

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: