Хочется сказать, что Exception-у место только на самом верху, прямо в мейне, дабы записать трейсбек в логи. Ведь бывает так, что найдется что-то, что ты не смог учесть.
@@SurenKhorenyan лямбда в любом случае полезна. К примеру воткнуть в тот же sorted(). А так вряд ли питонисты хоть раз трогали хаскел какой-нибудь. Хотя elexir довольно прикольный, но тяжко писать на функционалке. Кстате, а будут ли ролики по golang или дальше tour of go не пойдем?
В sorted тоже можно без лямбды. Предвидя вопрос сделал ещё ролик на тему. Про Go сначала надо тур закончить.. а потом есть некоторые планы, надо только добраться
Как всегда шикарное видео! Круто все объяснил! Есть вопрос про обработку исключений. Предположим, я пользуюсь новым инструментом и не знаю, какие ошибки могут возникать, но точно знаю, что они могут быть. Можно ли в таком случае отлавливать их с помощью Exception? Или лучше потестировать это место в программе на разных данных и обработать как можно больше явных исключений?
Круто, спасибо! Тут у вас несколько разных вариантов: - протестировать приложение 😁 написать тесты, отловить исключения, добавить их обработку - запустить как есть, и ловить ошибки в проде, добавлять обработку по мере поступления. Для этого да, придётся какой-то общий обработчик навесить - добавить одну общую обработку (немного грустный вариант)
А так можно делать?: 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 Заменить "elif" на "if". У вас и в других видео проскакивали подобные подходы. В своё время господин Дейкстра назвал всех немного "тупыми" и очень посоветовал не использовать goto. Так разработчики стали использовать древовидный контрол граф вместо полного. В древовидном оставили только while и if. Пытаться упростить то что осталось, ну это в кого мы тогда должны превратиться. Тупо писать линейные проги? К тому же есть области где это просто не работает.
@@_dzen_tv_ если честно, я не понял сути. Вам не нравится, что я предлагаю писать на несколько символов меньше? Про данного иностранного господина не знаю, оскорбления не поддерживаю. А RESTAPI тут причём? Не пойму
@@SurenKhorenyan "if" и "elif" принципиально разные вещи. Но думаю что используя return вы эмулируете поведение классического switch case. И это похоже на правду. Просто объясняете это с другого конца. Что касается Дейкстры, то было это давно и он собственно предложил способ упростить написание программ. Ведь сложный контрол граф так же сложно отлаживать. Те же регулярки, к примеру.
@@_dzen_tv_ всё ещё не понимаю сути Да, switch / case (в Python это match / case, есть ролик на канале) можно заменить ифами и элифами. Но суть использования if и отказа от elif всё же немного про другое. А что за подход в стиле REST API?
Сурен зануда, навязывает своё представление о "прекрасном" как единственно читаемый вариант. На само деле указывать переменные через запятую нисколько не ухудшает читабельность.
Да, я зануда, и считаю, что должен быть только один способ делать что-то. И если у нас есть два способа объявлять переменные, я предлагаю объявлять их только одним способом, который подходит во всех случаях
Мальчик не заставляет вас смотреть видео. Я запрещаю так делать, потому что потом мне показывают такой код, и мне становится больно. Если вы делаете так только у себя, и никто не увидит весь ужас, то делайте как хотите.