Максим Федоров, я не совсем понимаю что такое сквозная функциональность. Проверка авторизации например это сквозная функциональность? Её логика находится в одном месте, но проверки на основе этой логики осуществляются при заходе пользователя на любую из 10 страничек... я правильно понимаю?
Иван, а точно есть разница? Ведь, если исключение возникает в строках WebDriverWait(), то стразу отрабатывает блок except, при этом blabla пропускается...
Ivan Yakushenko, мистика в том, что скрипт действительно ищет, а не переходит в блок except. и минуты через 2 всё таки находит элемент. Вот репозиторий если нужно
Ivan Yakushenko я именно то и описал в вопросе, что вы сейчас сказали - если за 10 сек не был найден результат, то срабатывает except. но у меня этого не происходит, у меня скрипт ищет результат вечно
Сергей Горностаев, я думаю, это зависит от задачи. Например, если программа состоит из 1000 процедур и важно чтобы все они выполнились без ошибок, то да - лучше отлавливать конкретные виды исключений полностью контролировать процесс и иметь минимум неожиданностей.
А вот например когда есть программа, которая раз в сутки парсит 1 млн страниц и её устроит, если наберётся контента с этих страниц не менее 80%, то можно использовать наиболее общий блок Exception() как в моём примере. и в этом блоке будет содержаться какое-нибудь информационное действие типа записи в лог
Roman Kitaev но как сборщик мусор узнает, что этот объект больше не нужен? Ведь переменная img_recognizer всё ещё ссылается на этот объект. А сборщик чистит только когда на объект не ссылается ни одна переменная
AlerX, я вызвал ошибочное исключение. То есть hide_phone_el не находит элемента в DOM, если вы это имеете в виду. А как это исключение решить(обработать) я не понимаю
abbrakadabbra с эксепшенами всё понятно. меня беспокоит ситуация когда страница очень долго грузится(например 10 сек), но в итоге всё же загрузится. Я правильно понимаю, что поле этих 10 секунд начнёт выполняться действие2?
Сергей Горностаев, согласен, я неудачно выразился. Будут они выполняться одним ядром или несколькими решать будет ОС, исходя из своих "соображений". То есть разработчик это не сможет контролировать
Это я понял, но дело в том, что после удаления таблицы я также удалил и каталог versions со всем содержимым. таким образом история уже не может помнить таблицу с какой структурой я создавал ранее.
А по одному только id(который хранится в alembic_version) невозможно восстановить структуру таблицы
MechanicZelenyy разве это так? Мне казалось, что существует 3 уровня: процессы, потоки, сопрограммы. дороже всего для ОС обходятся процессы, дешевле - сопрограммы(потому что для них ничего не нужно создавать на уровне ОС, это просто код, который помнит своё состояние)... я ошибаюсь?
Max Payne, Например, есть 2 воркера, каждый из которых что-нибудь вычисляет и при этом использует 100% мощности процессора. Если эти воркер запускать в отдельных потоках, то все вычисления займут 10сек(потому что GIL не разрешает выполняться им параллельно).
Но если каждый из этих воркеров запускать на отдельном ядре, то все вычисления займут 5 сек. Это я называю настоящим параллелизмом.