Тёмный

Никогда ТАК не делай в Python | 5 запретных техник 

Сурен Хоренян
Подписаться 10 тыс.
Просмотров 3,4 тыс.
50% 1

Опубликовано:

 

21 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 54   
@_radja
@_radja 3 месяца назад
Хочется сказать, что Exception-у место только на самом верху, прямо в мейне, дабы записать трейсбек в логи. Ведь бывает так, что найдется что-то, что ты не смог учесть.
@SurenKhorenyan
@SurenKhorenyan 3 месяца назад
Да, тут допустимо, согласен
@dmitry-lz1ny
@dmitry-lz1ny 4 месяца назад
Если функциональщики смотрели и услышал, что "Не надо использовать лямду", то будет холивар. : )
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Ждём холивар! Без лямбды в Python можно прекрасно жить.
@ЕвгенийЮрченко-с1ф
@ЕвгенийЮрченко-с1ф 4 месяца назад
​@@SurenKhorenyanможно. А нужно ли?)
@dmitry-lz1ny
@dmitry-lz1ny 4 месяца назад
@@SurenKhorenyan лямбда в любом случае полезна. К примеру воткнуть в тот же sorted(). А так вряд ли питонисты хоть раз трогали хаскел какой-нибудь. Хотя elexir довольно прикольный, но тяжко писать на функционалке. Кстате, а будут ли ролики по golang или дальше tour of go не пойдем?
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
В sorted тоже можно без лямбды. Предвидя вопрос сделал ещё ролик на тему. Про Go сначала надо тур закончить.. а потом есть некоторые планы, надо только добраться
@ЕвгенийЮрченко-с1ф
@ЕвгенийЮрченко-с1ф 4 месяца назад
@@SurenKhorenyan Я знаю, что "можно", вопрос звучал по другому
@ЕвгенийЮрченко-с1ф
@ЕвгенийЮрченко-с1ф 4 месяца назад
В целом, видео Сурена достаточно годные(особенно для новичков), но текущее видео получилось крайне неудачным и спорным.
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Спорное это точно. А что неудачного? 🤔
@ИгорьМафов
@ИгорьМафов 4 месяца назад
Как всегда шикарное видео! Круто все объяснил! Есть вопрос про обработку исключений. Предположим, я пользуюсь новым инструментом и не знаю, какие ошибки могут возникать, но точно знаю, что они могут быть. Можно ли в таком случае отлавливать их с помощью Exception? Или лучше потестировать это место в программе на разных данных и обработать как можно больше явных исключений?
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Круто, спасибо! Тут у вас несколько разных вариантов: - протестировать приложение 😁 написать тесты, отловить исключения, добавить их обработку - запустить как есть, и ловить ошибки в проде, добавлять обработку по мере поступления. Для этого да, придётся какой-то общий обработчик навесить - добавить одну общую обработку (немного грустный вариант)
@vladimirpodzorov3584
@vladimirpodzorov3584 4 месяца назад
А так можно делать?: while True: try: val = input("> ") print(int(val)**2) except (ValueError, KeyboardInterrupt) as exc: if type(exc) == KeyboardInterrupt: print("Bye!") return print("Val err! Try again")
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Можно, но зачем? Вы убираете одно условие, чтобы добавить другое? И, кстати, проверку на тип нужно делать через isinstance, а не через type () == ...
@lifestyletv139
@lifestyletv139 4 месяца назад
Красава
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Спасибо!
@MAKS19961204
@MAKS19961204 4 месяца назад
Никогда не любил лямбды... Ещё с универа и шарпа. Реально очень мало случаев, когда вот прямо только лямбда может выполнить задачу так как надо и с минимумом геморроя.
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
🔥🔥🔥
@justyar5781
@justyar5781 4 месяца назад
В первом примере нужен snake case
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Абсолютно точно нужен. Но в данном случае пример для наглядности. Подобные пересечения случаются и при соблюдении стиля именования
@AlexAlex-ui5gz
@AlexAlex-ui5gz 4 месяца назад
Как-то даже в голову не приходило так делать, вроде бы очевидные же вещи. Разве такие люди существуют, допускающие такое? Или тут инфа для начинающих?
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Скорее для начинающих. во многих туториалах такое можно встретить, не люблю такое
@m.manukian
@m.manukian 4 месяца назад
красавчик
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Спасибо большое!
@_dzen_tv_
@_dzen_tv_ 4 месяца назад
Всё, на втором примере понял, ни какой вы не синьёр. Писать весь код в стиле RESTAPI такое себе. Б-р-р-р-р.
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
А я и не синьёр, всё так 🙂 А как бы вы сделали? Про какой из пяти пунктов вы пишете?
@_dzen_tv_
@_dzen_tv_ 4 месяца назад
@@SurenKhorenyan Заменить "elif" на "if". У вас и в других видео проскакивали подобные подходы. В своё время господин Дейкстра назвал всех немного "тупыми" и очень посоветовал не использовать goto. Так разработчики стали использовать древовидный контрол граф вместо полного. В древовидном оставили только while и if. Пытаться упростить то что осталось, ну это в кого мы тогда должны превратиться. Тупо писать линейные проги? К тому же есть области где это просто не работает.
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
@@_dzen_tv_ если честно, я не понял сути. Вам не нравится, что я предлагаю писать на несколько символов меньше? Про данного иностранного господина не знаю, оскорбления не поддерживаю. А RESTAPI тут причём? Не пойму
@_dzen_tv_
@_dzen_tv_ 4 месяца назад
​@@SurenKhorenyan "if" и "elif" принципиально разные вещи. Но думаю что используя return вы эмулируете поведение классического switch case. И это похоже на правду. Просто объясняете это с другого конца. Что касается Дейкстры, то было это давно и он собственно предложил способ упростить написание программ. Ведь сложный контрол граф так же сложно отлаживать. Те же регулярки, к примеру.
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
@@_dzen_tv_ всё ещё не понимаю сути Да, switch / case (в Python это match / case, есть ролик на канале) можно заменить ифами и элифами. Но суть использования if и отказа от elif всё же немного про другое. А что за подход в стиле REST API?
@whiterabbit6211
@whiterabbit6211 4 месяца назад
Сурен запрещает... )
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Да! (Чуть-чуть) 😅
@whiterabbit6211
@whiterabbit6211 4 месяца назад
Сурен зануда, навязывает своё представление о "прекрасном" как единственно читаемый вариант. На само деле указывать переменные через запятую нисколько не ухудшает читабельность.
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Да, я зануда, и считаю, что должен быть только один способ делать что-то. И если у нас есть два способа объявлять переменные, я предлагаю объявлять их только одним способом, который подходит во всех случаях
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Кстати, а вторую причину вы ставить под сомнение не будете? Помимо читабельности вопрос ещё в удобстве дальнейшей работы с этими переменными.
@black_grizzly
@black_grizzly 4 месяца назад
​@@SurenKhorenyanвлуплю лайк заместо Тима Питерса
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
​@@black_grizzly спасибо!
@hayksardaryan
@hayksardaryan 4 месяца назад
а где global?🤔😁
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Оооооо это настолько запретная тема для меня, что я даже не вспомнил! 😅
@glaviznin
@glaviznin 4 месяца назад
Хрена мальчик зазвездился. Может ты рекомендуешь, а не запрещаешь!?
@SurenKhorenyan
@SurenKhorenyan 4 месяца назад
Мальчик не заставляет вас смотреть видео. Я запрещаю так делать, потому что потом мне показывают такой код, и мне становится больно. Если вы делаете так только у себя, и никто не увидит весь ужас, то делайте как хотите.
@dmitryzagorevskiy507
@dmitryzagorevskiy507 4 месяца назад
Так если Сурен не запретить, кто-же другой посмеет попробовать тебе орлу соколову запретить, так и будешь многокодить . На правах шутки )
@bel1fegor658
@bel1fegor658 4 месяца назад
Сурен делает гораздо больше для улучшения знаний комьюнити, чем вы своим бесполезным комментарием
Далее
Распаковка iPhone 16 Pro Max
01:01
Просмотров 1,5 млн
Основы Asyncio
53:25
Просмотров 20 тыс.