Получи случайную криптовалюту за регистрацию!

Pattern Matching В python 3.10 появилась долгожданная возможн | DevFM

Pattern Matching

В python 3.10 появилась долгожданная возможность использовать конструкцию match/case. На первый взгляд это классический switch, но в питоне пошли дальше.

В статье Recipes and Tricks for Effective Structural Pattern Matching in Python автор рассказывает о неочевидных возможностях pattern matching:
— как использовать в блоке case регулярные выражения, хотя это не предусмотрено по умолчанию
— как с помощью атрибута __match_args__ сделать позиционные аргументы в клаccе и использовать их в case
— как хитро проверить ключи и их значения в json-объектах
— и несколько ещё менее очевидных применений

Важное предупреждение: этот функционал открывает много возможностей. Первая реакция: ого, как можно! Но чрезмерно сложный case затрудняет читабельность кода и приводит к неочевидным проблемам.

О неочевидных проблемах автор также не забывает:
— порядок case важен, потому что какой-то case может быть недостижим
— неожиданное поведение при несовпадении ни с одним из case
#python