169 похожих чатов

Единственное до чего я дошел эволюционно - разбивать весь код

питона на блоки, типа 1 блок - 1 важное действие. Весь блок оборачивается в try-except и таким образом если в этом блоке происходит ошибка - я просто выхожу из блока через except и дальше уже не иду, вызывая функцию отчета об ошибке мне в телегу.

А как вы изолируете потенциально опасные функции?

25 ответов

76 просмотров

Так же и делаю через try-except. Только в try надо заворачивать как можно меньше кода, желательно один вызов.

А декораторы не устраивают чем-то? По-моему, это самый прямой путь в питоне сделать "обёртку" над функцией

Саша | IT- Автор вопроса
Stas B
А декораторы не устраивают чем-то? По-моему, это с...

не устраивают тем, что декоратор можно написать и использовать ТОЛЬКО при создании функции

Если речь об R, то tryCatch и пакет checkmate закрывают все потребности. Тем более на assert в .var.name можно подвесить что угодно начиная от писания в лог, и заканчивая телеграмм ботом, который отстукивает если пошла хрень в данных.

Саша | IT
не устраивают тем, что декоратор можно написать и ...

Вы ищите слова "контекстный менеджер" скорее всего - with

Он это обертка для try catch с явно заданным объектом от которого пляшем и позволяет собой декорировать любой код

))) Сугубо потребительское отношение. Вокруг люди ходят, может они ещё не решили, checkmate ещё не используют. Хотя вроде и писали, но не лишним будет напомнить.

Я вот использую try только при вызове некоторых библиотечных функций. Потому что ошибка в коде означает мое непонимание данных или бизнес-процеса, я должен вернуться на пару шагов в crisp-dm, а не try наваливать в код. Сходить в гембу, выяснить, откуда берутся такие условия, что код рушится. Как правило, это приносит новые знания и понимание.

мне кажется в питоне - это распространенная привычка, в R наблюдаю этого гораздо меньше

я напоминаю, это до сих пор чат по R

Юрий
я напоминаю, это до сих пор чат по R

Юра, в целом да. Но с учетом стратегии Posit и общих тенденций на рынке иногда полезно/интересно обсудить нетривиальные вопросы по питону. Только без потока сознания, а в формате вопрос-ответ. Здесь часто ответы поступают куда информативнее и менее ангажированные чем в питон группах. Не то, чтобы нельзя было найти ответы на все вопросы путем длительного чтения книг и блогов. Но часто можно наткнуться на корявые способы и кривые ответы и решить, что так оно и должно быть, хотя, зачастую, это вовсе не так.

Ilya Shutov
Юра, в целом да. Но с учетом стратегии Posit и общ...

Я не против такого, но когда просят "мне такое же, только на питоне". Это лучше не здесь

Саша | IT- Автор вопроса
Юрий
я напоминаю, это до сих пор чат по R

Спасибо за напоминание, но здесь нет строгих правил и если вопрос не по R - бан) Я в душе исследователь и мне интересно развиваться как программист. Какая разница какой язык выбрать, если мне привычнее и удобнее общаться с более образованными и корректными людьми) В питон сообществах спошь и рядом всё плохо. Да, народу там много, но хоть язык и высокоуровневый, но народ нет)

Саша | IT- Автор вопроса
Юрий
Я не против такого, но когда просят "мне такое же,...

А где?) В питон сообществах? Там не знают возможностей R)

Саша | IT
Спасибо за напоминание, но здесь нет строгих прави...

Просто реально бесит, например, пишешь пост в канале с примером на R,а мне коммент -- круто, а на питоне можно так... Занавес. Зачем натягивать сову на глобус, непонятно

Саша | IT- Автор вопроса
Юрий
Просто реально бесит, например, пишешь пост в кана...

Вы как будто ревнуете к питону) чем он вам не угодил?)

Саша | IT- Автор вопроса
Юрий
Это их проблемы

Я сомневаюсь что это вообще проблема

Юрий
Я не против такого, но когда просят "мне такое же,...

Согласен на 100%. Но иногда бывают отличные вопросы, которые заставляют подумать как такое же сделать в R. Вот был отличный вопрос от Ильи Малеки: https://t.me/r_in_action/305. Пришлось попыхтеть достаточно для адекватного ответа 🙂

Саша | IT- Автор вопроса

Кстати да. Есть же и обратная сторона, когда те, кто знают питон хотят изучить R и у них такие же вопросы.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта