Вот зачем нужен Match Case в Python | Реальное предназначение оператора

  Рет қаралды 18,164

ZProger [ IT ]

ZProger [ IT ]

Күн бұрын

Пікірлер: 83
@akshinyolcuyev8729
@akshinyolcuyev8729 Жыл бұрын
8:56 if user is not banned_list , разве не if user not in banned_list ?
@artemxyi
@artemxyi 5 ай бұрын
if not user in banned_list
@ByTheWay12
@ByTheWay12 Жыл бұрын
Достаточно полезная информация. Спасибо!
@zproger
@zproger Жыл бұрын
Благодарю за фидбэк!
@sergeiivanov5739
@sergeiivanov5739 Жыл бұрын
@@zprogerСпасибо за видео!!! Действительно, правда, ничего нового, но это действительно огромная тема. Уверен в вашем курсе есть и более продвинутые примеры :)
@terriorrabyte1655
@terriorrabyte1655 Жыл бұрын
Я тоже за pycharm - мне легче воспринимать более контрастный цвет. Спасибо за показ примеров с множеством условий. Думаю теперь мой код станет более читаемым. *пошла убирать вложенность из match case...
@ИванОсинин-с7и
@ИванОсинин-с7и Жыл бұрын
Цветовую схему можно менять и далее делать кастомную практически в любом редакторе
@ydjin3930
@ydjin3930 Жыл бұрын
Очень странные примеры честно говоря. Почему то с самого начала автор говорит что мэтч кейс не просто свич, а в итоге много примеров аля свич..пример с енамкой или хедером. Вообще не очень понятно зачем прям целый объект конфига пихать в свич если хочется проверить только атрибут дебаг у которого просто не может быть логически значения отличного от bool, особенно если выставить дефолтное значение) А по итогу на галере будешь пользоваться конструкцией как свичем, периодически подсовывая в метч не 1 атрибут а несколько. Не встречал пока ни одного кейса когда нужно было бы дописать еще какое то условие в сам кейс, просто потому что это становится плохо читаемым кодом. Потом если мы используем метч кейс то у нас появляется двойная вложенность, а мы находимся в ооп, пишем метод для класса, уже тройная..В общем то упираемся в пеп с его длиной строки, от чего для лучшей читаемости хотя бы для себя любимого ты не будешь писать какие то сложные условия прям в кейсе. По итогу упрешься в то что лучше бы заинтересоваться паттернами проектирования и собрать фабрику или абстрактную фабрику чем бахать полотно из не читаемых кейсов со сложными условиями. Вообще кажется что примеры нужно приводить по делу. То есть не нужно лезть в хедер и пытаться там что то метчить, этим уже занимается твой фреймворк. Не нужно лезть в командную строку и метчить атрибуты, ведь люди уже придумали удобные инструменты для разработки cli (плюс при добавлении еще одного ключа кейсами себе в ногу выстрелишь, кажется что лучше последовательно обрабатывать атрибуты, а не перебирать их различные комбинации). Не нужно в метч кидать целый дикт и пытаться сметчить ключи, ведь есть схемы, датаклассы и тд, в которых можно с легкостью необычайной что то валидировать, если уж сильно хочется то метчи сами ключи, мы ведь не будем на каждый кейс писать новый дикт, который может быть бесконечно огромным. Резюме: Автор, не готовь детей к егэ, нужно писать правильные и продуманные примеры от которых не будешь валяться на полу от кринжа. Примеры просто не терпят никакой критики, а начинающие айтишнички уж тем более. По этому важнее показать чистый код для какой либо конструкции, потому что в твой видос вернется не 1 джун и заберет твои ошибки себе, чтобы потом с красным лицом и красным носиком переделывать, когда его МР не апрувнет ревьюер.
@coreiex
@coreiex Жыл бұрын
Полезная инфа, спасибо! А как также настроить вим, как у тебя?
@zproger
@zproger Жыл бұрын
Пока что это дефолт настройка nvchad, я еще не добавлял свои плагины)
@asmodey9883
@asmodey9883 Жыл бұрын
Привет! В чём ты пишешь? В чём посоветуешь писать код для новичка в программировании на Пайтон?
@Gavriel8770
@Gavriel8770 Жыл бұрын
Классно! Хорошое и полезное видео :D
@blsskid
@blsskid Жыл бұрын
Подскажите пожалуйста что за оболочка линукса. Я не очень шарю в оболочках, но очень уж понравился внешний вид оболочки как на видео. В комментариях увидел что то про оконные менеджеры. Но мне интересно как в общем сделать такой внешний вид, например панель задач и т.д.
@baskakus
@baskakus Жыл бұрын
Видео познавательное, но вот в примере на 8:04 вместо конструкции match case можно одной строкой с тем же результатом: print("Строка присутствует") if headers["content-type"] == "application/json" else print(headers)
@magixxmagixx2678
@magixxmagixx2678 Жыл бұрын
ошибка будет KeyError
@artpro9191
@artpro9191 Жыл бұрын
@@magixxmagixx2678 хватит тупить) ... headers.get("content-type") == ...
@alexsychev961
@alexsychev961 Жыл бұрын
Видео огонь! Почему на 2:03 .__repr__, а не !r в f-строке? Это было сделано чисто ради наглядности примера, или есть более глубокое значение?
@sleepmode7592
@sleepmode7592 Жыл бұрын
Видео супер! Хотелось увидеть туториал как сделать такое же оформления ОС Спасибо
@anton_skch
@anton_skch Жыл бұрын
Спасибо большое, раскрыл глаза на match. Я думал это и правда типичный switch.
@MaksimShavrin
@MaksimShavrin 2 ай бұрын
5:10 if server_code in (1, 2, 3): ...
@ithelper9
@ithelper9 Жыл бұрын
Какой у тебя рабочий стол в Arch Linux?
@vladislavdudnikov26
@vladislavdudnikov26 Жыл бұрын
Это оконный менеджер типа DWM (их десятки вообще говоря, мне нравятся QTile (настраивается через Python) и BSPWM (очень модульный)).
@slashfast
@slashfast Жыл бұрын
hyprland
@Neko-sr4wz
@Neko-sr4wz Жыл бұрын
Спасибо за крутой видос!
@zproger
@zproger Жыл бұрын
Благодарю!
@indlborm
@indlborm Жыл бұрын
Понравилось, спасибо! Было бы неплохо еще углубиться в проверку типов. Как именно match решает, что именно нужно сравнить -- конкретное значение или тип значения. Например: match value: case list(): case []: case np.ndarray(): case np_array: и т.п. и можно ли одновременно проверить сначала тип, а потом уже значение. (по аналогии с последовательностью проверок if). И осветить классные методы тоже было бы хорошо. Где-то видел использование метода __match__. А если класс/функция стоит после case, то ее задача вернуть true/false после проверки значения. В это все не углублялся, было бы интересно послушать умных людей )
@hey-rg9lk
@hey-rg9lk Жыл бұрын
pep 634, 635 и 636 там описано как это работают и примеры
@indlborm
@indlborm Жыл бұрын
@@hey-rg9lk вопрос не в том, чтобы почитать голые спеки. их видел. а в том, что примеры оторваны от жизни. и напоминают тупую замену комбинации "if/else" на комбинацию "match/case". с единственным плюсом в предварительной проверке типов. само собой, в качестве "плохих if'ов" приводятся конструкции, вопиюще требующие рефакторинга. да и сначала, разобраться в логике -- зачем делать ТАК, а не нормально. а в качестве "хороших match" -- простейшие конструкции на уровне "если условие, то". или, в лучшем случае, простая замена switch. с помощью match можно сделать аналогично нечитабельные деревья вложенных условий ) и/или, как показано в ролике, попасть на "никогда не срабатывающие условия". (и про __match__ я написал из-за того, что в ролике затронули классы. но очень мало.) повторюсь, я в это не углублялся. т.ч. вопрос не в том, "чего бы почитать про", а именно в "хотелось бы увидеть аналогичный ролик про,". и именно реальные примеры использования, а не "если юзер админ и пароль 1111 и одмин не забанен, то". )
@luispakvard5681
@luispakvard5681 Жыл бұрын
Привет Интересно как внедрять JavaScript и другой код типа /OpenAction или /AA в pdf файлы например я хочу добавить что б когда открываеш PDF файл мой код написаный на powershell закодированный в что то вроде base64 а еще интересно как все это дело обсфуцировать с помощю питона работа с pdf на низком уровне если покажеш буду благодарен
@set_soul
@set_soul Жыл бұрын
Закидаю паттернов в код, пусть гуглят потом
@TeverRus
@TeverRus Жыл бұрын
Невероятно круто!
@zproger
@zproger Жыл бұрын
Спасибо за фидбэк!
@TeverRus
@TeverRus Жыл бұрын
@@zproger Братан, вообще благодарю тебя за видосы: я на работе людей просвещаю по ним иногда :)
@Kobachok367
@Kobachok367 Жыл бұрын
Что это за программа 0:11
@kaurt9954
@kaurt9954 Жыл бұрын
bat -- это как cat только с подсветкой синтаксиса и нумерацией строк
@wester35
@wester35 Жыл бұрын
Какая это оболочка арча? Очень зашла
@vladislavdudnikov26
@vladislavdudnikov26 Жыл бұрын
Не понял как ссылку на комментарий вставить, поэтому повторюсь. Это оконный менеджер типа DWM (их десятки вообще говоря, мне нравятся QTile (настраивается через Python) и BSPWM (очень модульный)).
@slashfast
@slashfast Жыл бұрын
hyprland
@hisokajoker7991
@hisokajoker7991 Жыл бұрын
Первый раз слушу про этот оператор в Питоне. Я просто недавно влился в тему IT. Спасибо за полезную инфу
@leniviy_uebok
@leniviy_uebok Жыл бұрын
он только недавно появился, в последней версии по моему
@dmitriyangald
@dmitriyangald Жыл бұрын
В Pycharm есть presentation mode, в нём ещё более наглядно
@vffuunnyy
@vffuunnyy Жыл бұрын
Соглашусь. в presentation mode было бы славно
@ggindinson
@ggindinson Жыл бұрын
Привет, отличное видео. Больше двух лет пишу на python, но часть паттернов не знал) Как ты относишься к django в текущем рынке айти, тк востребован практически на всех вакансиях, но при этом сейчас уже потихоньку умирает
@Sliwcom
@Sliwcom Жыл бұрын
Привет! Сделай пожалуйста обзор на установку arch linux и настройки его!😏😏💻💻
@docholo
@docholo Жыл бұрын
те, кто использует match case как switch case в других языках - мега ошибаются. питон сделан так, что структура elif намного быстрее - этому вы спокойно можете найти доказательства. я сам switch case enjoyer и был опечален этим фактом. спасибо автору, что дал немного надежды, что match case не бесполезен. но тут опять - хотелось бы тесты производительности, так как у питона с этим сложные отношения
@cuprum13
@cuprum13 Жыл бұрын
что за ide подскажите
@Neko-sr4wz
@Neko-sr4wz Жыл бұрын
VsCode вроде
@slashfast
@slashfast Жыл бұрын
pycharm и vim
@treehacks4701
@treehacks4701 Жыл бұрын
Мы ждем конфиги твоей системы
@luwqz1
@luwqz1 Жыл бұрын
классная штука для матча енамов, словарей, списков, датаклассов
@bezdrom5500
@bezdrom5500 Жыл бұрын
Что за IDE?
@zproger
@zproger Жыл бұрын
pycharm
@possumcode
@possumcode 9 ай бұрын
PyCharm легче воспринимать. Но стоит иногда переключаться на Vim, потому что круто))
@zproger
@zproger 9 ай бұрын
;))
@IvanIvanov-sx2fy
@IvanIvanov-sx2fy 3 ай бұрын
Так и не понял, почему это "совершенно разные технологии". И там и там всего лишь сравниваются входные данные с какими-то шаблонами и в зависимости от этого выполняется тот или иной код. Это всего лишь синтаксический сахар
@maximpng
@maximpng Жыл бұрын
Что за шрифт используют автор?
@zproger
@zproger Жыл бұрын
JetBrains
@pashkalopatov1983
@pashkalopatov1983 Жыл бұрын
Видео супер полезное, но в последнем примере not in а не is not надо
@grayich
@grayich Жыл бұрын
Подсветка в пичарме лучше, но в виме размер окна больше, что приятнее глазам)
@mike7105mike
@mike7105mike Жыл бұрын
pycharm лучше, подсветка и привычнее, спасибо за видео!
@palyaros02
@palyaros02 Жыл бұрын
Что это за gui?
@ZZZMerk
@ZZZMerk Жыл бұрын
При всем уважении к vim, за Pycharm. Все-таки аутентичнее и привычнее так)
@eagold
@eagold Жыл бұрын
Да не Тогда уже вс код
@nikitatimofeenko9351
@nikitatimofeenko9351 Жыл бұрын
Давай теперь про ADT
@AJG54143
@AJG54143 Жыл бұрын
Спасибо за инфо, но очень тяжело на слух понимать тебя. Очень много повторяющихся слов паразитов: это, вот это, это, да этот... в итоге превращается все что ты сказал в кашу. А потом еще скрины кода быстро передергиваешь, а зато за ними втыкаешь чьи то удивленные рожы, но уже надольше по времени. Посмотри зарубежные ролики, там даже если выключить видео, то на слух все будет понятно.. Это так для обратной связи, потому что сама информация, которой делишься - полезная, а вот подачу почётче видеть хотелось бы )
@Achannelife
@Achannelife Жыл бұрын
Отчасти поддерживаю) материал на канале оооочень интересный, смотрю все "до дыр", но хотелось бы, что бы ты вел повествование как-то поспокойнее что-ли, расслабленее)
@grayich
@grayich Жыл бұрын
Да инфа очень плотно подаётся и быстро, не успеваешь понять, нужно паузу тыкать, отматывать назад. Но это на вкус и цвет. А вот то что точно нужно добавить -- паузы между логическими блоками, или перебики.
@FULLLIFE4ever
@FULLLIFE4ever Жыл бұрын
Спасибо за материал! Прошу прощения, но switch case != if else! Switch сразу перескакивает на тот функционал, на который ссылается элемент, в отличии от if else, который пройдет по всем своим блокам. Proof: kzbin.info/www/bejne/nJu4eJKvar-UgpY&si=Hy3bl7f11znFwRn1
@GolosCD1988
@GolosCD1988 Жыл бұрын
Хер знает, объяснение нихрена непонятное. Быстро. Тараторит. Не люблю такую подачу.
@RM-xb3jk
@RM-xb3jk Жыл бұрын
Где ж ты был раньше.
@middleperson5326
@middleperson5326 3 ай бұрын
всёравно не понятно зачем это нужно. Просто чутка короче синтаксис но на уровне байткода наверняка выполняються ровно теже операции которые были бы при записи через if. Всёже это просто синтаксический сахар
@zproger
@zproger 2 ай бұрын
В целом да, это просто синтаксический сахар, однако многие моменты позволяет записать более просто и читабельно.
@ИванОсинин-с7и
@ИванОсинин-с7и Жыл бұрын
Такими темпами питон превратиться в плюсы по сложности
@Jastcher
@Jastcher Жыл бұрын
в пайчарме конечно)
@super_man-ArtOfWar3
@super_man-ArtOfWar3 Жыл бұрын
В виме подсветка какая-то тусклая. Лучше в пчарме тогда
@zproger
@zproger Жыл бұрын
Благодарю
@Альберт-ц5э
@Альберт-ц5э Жыл бұрын
Больше нравится пайчарм
@ShadowStormlq5mwdasd
@ShadowStormlq5mwdasd Жыл бұрын
В Pycharm
@zproger
@zproger Жыл бұрын
Благодарю!
@iJaVolo
@iJaVolo Жыл бұрын
Pycharm привычнее
@KolyaK9
@KolyaK9 Жыл бұрын
В пайчарме мы и сами посмотрим. Лично я новое лучше воспринимаю в непривычной обёртке.
@_Kruzo_
@_Kruzo_ 10 ай бұрын
Мой пулемет и то медленней строчит...
@zproger
@zproger 10 ай бұрын
я превзошел ваш пулемет 1000 лет назад)
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН
Создаем свое ANDROID приложение на PYTHON
13:55
Чёрный Треугольник
Рет қаралды 216 М.
18 Фишек Python о которых мало кто говорит
14:13
АЛГОРИТМЫ В PYTHON. ЦИКЛ WHILE. РАЗЖЕВАЛ ДО МОЛЕКУЛ.
36:40
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН