TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #2380 5.6K
​Как использовать оператор match по полной?

match case — собрат if-else, но одна из фишек оператора заключается в том, что он поддерживает деконструкцию (destructuring). То есть он может использовать шаблон, чтобы извлекать значения из сложных объектов, таких как кортежи или словари.

Например:

def make_point(point):
match point:
case(x, y):
return Point3D(x, y, 0)
case (x, y, z):
return Point3D(x, y, z)
case _:
raise TypeError("Нет координат")

>>> make_point((1, 2))
Point3D(x=1, x=2, z=0)

>>> make_point((1, 2, 3))
Point3D(x=1, x=2, z=3)

>>> make_point((1, 2, 3, 4))
TypeError: Нет координат

Теперь make_point() способна справиться с неполными данными. Если первый раз она приняла все три параметра, то в последующие уже справлялась с недостатком и переизбытком.

С такой функцией вы значительно понизите шансы на падение программы и не потратите на обработку всех ситуаций много времени.

#лучшиепрактики
  • 👍 11
  • 🤔 7
  • 🔥 3
  • 👨‍💻 3
More from @zen_of_python
  1. Oct 13, 2026👁👁 Тестовый собес на Python с разработчиком из Яндекса [+ ответы на 50 сложных вопросов…
  2. Oct 13, 2026Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-ск…
  3. Oct 13, 2026Post #5059
  4. Oct 13, 2026Как менеджер паролей найдёт вашу форму Django Менеджер паролей обнаружил утечку и предлага…
  5. Oct 13, 2026Почему lru_cache удерживает объекты в памяти Декоратор lru_cache хранит аргументы и резуль…
  6. Oct 13, 2026Python 3.10 больше не получает исправления безопасности Версия 3.10.22 стала последней в с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →