Сопоставление шаблонов в python 3.10



Уже сегодня, 4-го октября, должна выйти в релиз версия Python 3.10, но пока этого еще не произошло)



Одной из добавленных фишек стала конструкция сопоставления с шаблоном match/case по аналогии с конструкцией switch/case из других языков. Для тех, кто вообще не понимает о чем речь, switch/case - это конструкция, позволяющая определить различное поведение в зависимости от значения передаваемого паттерна.



В с++ допускается проверка только целочисленных типов и перечислений, в java, с#, go... также помимо этого еще возможно использовать в switch/case строки.



В python решили не ограничиваться данной функциональностью и добавить возможность работать с любыми типами. Помимо этого мы можем добавлять в шаблоны альтернативу, перечисляя все возможные значения через оператор | (или), а также работать с более сложными вложенными шаблонами и накладывать однострочные условия на шаблон.



#switch #match