LINUX.ORG.RU

История изменений

Исправление Dred, (текущая версия) :

Так, тебе надо держать 100500 нюансов и концепций python-а

Поэтому я пригорел от:=, теперь да, теперь нужно. Если использовать постоянно with при открытии файлов понятно когда он закроется, с try(или без) мне придется поискать, а в случае с java еще и обыскать finally на наличие return. Как бонус, это позволяет повесить обработку закрытия дескриптора на сам объект, а не на пользователя. Странно видеть у Python больше инкапсуляции чем в java.

В случае с try ты всегда видишь возможные проблемы

глупости, в try можно что угодно обернуть, хоть весь код, все что я увижу, то что вероятно я не пропущу ошибку потому что её кто-то заглушил. В java оно действительно понятнее тем что приходится указывать вероятные эксепшены, но это особенности статической типизации, это уже не ниша python (и даже тут try не обязателен)

Кстати, как ни странно, один из самых понятных способов обработки ошибок - в Go, хоть раньше он мне и не нравился (например потому что его по-сути и нет), но бывает крайне удобно, просто возвращать ошибку как часть результата работы функции, это например позволяет проще организовать обработку и слить это в одну точку.

Исходная версия Dred, :

Так, тебе надо держать 100500 нюансов и концепций python-а

Поэтому я пригорел от:=, теперь да, теперь нужно. Если использовать постоянно with при открытии файлов понятно когда он закроется, с try(или без) мне придется поискать, а в случае с java еще и обыскать finally на наличие return. Как бонус, это позволяет повесить обработку закрытия дескриптора на сам объект, а не на пользователя. Странно видеть у Python больше инкапсуляции чем в java.

В случае с try ты всегда видишь возможные проблемы

глупости, в try можно что угодно обернуть, хоть весь код, все что я увижу, то что вероятно я не увижу ошибку потому что её кто-то заглушил. В java оно действительно понятнее тем что приходится указывать вероятные эксепшены, но это особенности статической типизации, это уже не ниша python (и даже тут try не обязателен)

Кстати, как ни странно, один из самых понятных способов обработки ошибок - в Go, хоть раньше он мне и не нравился (например потому что его по-сути и нет), но бывает крайне удобно, просто возвращать ошибку как часть результата работы функции, это например позволяет проще организовать обработку и слить это в одну точку.