Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 December 24

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Roman
Тыкать будешь подружке своей. А в обществе на Вы общаться стоит.
Прошу прошения великодушно, уважаемый Сэр, но претензии к тону это последнее чем стоит заниматься в приличном обществе. И уж тем более в приличном обществе не стоит претензии выказывать в столь надменной манере, сечёшь?)
источник

R

Roman in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Прошу прошения великодушно, уважаемый Сэр, но претензии к тону это последнее чем стоит заниматься в приличном обществе. И уж тем более в приличном обществе не стоит претензии выказывать в столь надменной манере, сечёшь?)
Сечет тёлочка твоя, а я понимаю, что ваши советы дальше столично олимпиады использовать не стоит
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Roman
Он лучше, но пользоваться исключениями в коде плохой тон. Надо писать отдельные классы и обработчики.
Исключениями пользоваться это настолько плохой тон что аж существует целый принцип EAFP?
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Звучит так себе, честно говоря)
источник

R

Roman in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Исключениями пользоваться это настолько плохой тон что аж существует целый принцип EAFP?
Я же не сказал, что вообще нельзя, как будто их нет.
Там где я работаю, предпочтительно написать такой код, что бы не было нужды использовать исключения.
источник

БГ

Бензофуран Гетероцик... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Roman
Я же не сказал, что вообще нельзя, как будто их нет.
Там где я работаю, предпочтительно написать такой код, что бы не было нужды использовать исключения.
Окей, тогда без вопросов
Но всё же оговорка "там где я работаю" достаточно важна
источник

R

Roman in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Бензофуран Гетероцикл
Окей, тогда без вопросов
Но всё же оговорка "там где я работаю" достаточно важна
Один никому не известный поисковик
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
о, в питоночате тоже споры про исключения)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Переслано от std::slavik
try{
   // мы знаем, как обрабатывать ошибку - нам важна скорость и продолжить выполнение
   res = something();
   if (res) ...

   res = something2();
   if (res) ...
}catch(...) {
   // мы знаем, как обрабатывать ошибку, но если она возникла - нам уже не важна скорость, логируем, перезапускаем все нах

  throw;
}
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Переслано от std::slavik
если например в something() мы проверяем коннект - мы ожидаем от него что он либо есть либо нет - если нет - реконнектимся, если таймаут - кидаем исключение, если подключение есть - отправляем че хотели, если не пришел ack - переотправляем, если число попыток исчерпано или таймаут - кидаем исключение с нижних слоев - мы сделали что могли и наши полномочия окончены - при этом тип исключения общий для всех - таймаут, макс число ретраев достигнуто и тд - вдовесок к ним получаем контекст в котором это случилось - сохраняем это все в лог неспеша и бросаем дальше исключение, верхний слой тупо делает перезагрузку
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
если вкратце - мое мнение примерно такое)
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
но вообще это когда речь идет о производительности имеет значение
использовать исключения или нет
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
в целом исключения конечно удобнее чем проверка возвратов, но это удобство не бесплатное
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
std::slavik
Переслано от std::slavik
try{
   // мы знаем, как обрабатывать ошибку - нам важна скорость и продолжить выполнение
   res = something();
   if (res) ...

   res = something2();
   if (res) ...
}catch(...) {
   // мы знаем, как обрабатывать ошибку, но если она возникла - нам уже не важна скорость, логируем, перезапускаем все нах

  throw;
}
это правда C++ псевдокод, но суть та же
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
есть много кейсов когда ошибка - нормальное поведение, например в сетевых всяких делах
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
может не с первого раза что-то произойти и мы ожидаем этого
но знаем что если с 10 попыток не получилось - это уже исключительная ситуация
и дальнейшее выполнение программы невозможно
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
поэтому я бы в цикле 10 раз попытался подключиться/отправить что-то с проверкой кода возврата, если не получилось на 10 раз - кидал исключение
источник

s

std::slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
в общем - если нет нужды особой - лучше использовать исключения, в питоновском коде в большинстве случаев я так и делаю - т.к. питон это язык на котором в первую очередь должно быть удобно писать, писать удобнее с исключениями
источник

Е

Евгений in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Господа-товарищи, под новую практику(2020) отдельный канал в телеге создавали?
источник

E

Egor in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Евгений
Господа-товарищи, под новую практику(2020) отдельный канал в телеге создавали?
да, нет, все питонисты от Хирьянова тут, вроде
источник