Сопоставление шаблону и неосвоенные области
Базовая статья: pep-636 (а также pep-635 и pep-634)
Главная сложность: конструкция match … case имеет отличный от Python синтаксис! Спасибо смене парсера с LL(1) на PEG.
Пересказ tutorial:
- Вместо цепочки однотипных elif-ов - →
 
- Связанные переменные и catch-all: 
- Распаковка и catch-all: - Как всегда, включая len()==0 
 
 
- Альтернативы и явно связанные переменные 
- Фильтры: 
- Проверка типов (help(complex)), проверка полей объекта (как правило по имени, редко когда определено перечисление полей) 
- Как определить перечисление полей: 
- Словари: 
- Как отличить константу от связанной переменной? Никак! Храните константы в изолированных пространствах имён: - TODO enum doesn't work 
 
Что мы не посмотрели в Python
- (это очень жаль) Не было разговора про стиль оформления кода, хотя бы про pep-8 и best practices. 
- Языковые модули, такие как dataclasses, enum, weakref и т. п. Это как бы расширения языка, а мы его проигнорировали 
- Оформление собственных модулей — будет в курсе следующего семестра
- Инструменты разработки, встроенные в сам дистрибутив Python. Об этом — курс следующего семестра
- Полезные для боевого программирования модули, типа os, pathlib, subprocess, http и т. п. — их довольно много 
- …
- http://PyPi.org: 420 728 проектов (Сколько там было осенью?) 
The Zen of Python, by Tim Peters
- import this 
- import antigravity 
Д/З
Научиться определять, в каких алгоритмических конструкциях можно использовать match … case — и использовать его там!
