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