Pull to refresh

Comments 13

Не надо!
Но почему?
функция может вести себя непредсказуемо

А где сама статья? Где описание поведения функции? Где попытка вывести свой чудо-паттерн обработки таких параметров? Как редактировать и пробрасывать аргументы в нижележащие функции? Как пробрасывать документацию от нижележащих функций?

Если уж идея в обсуждении, то давайте начнём с того, почему функция может вести себя непредсказуемо, если её поведение предопределено.

Ага, а ещё картинки в «статье» никаким боком не относятся к тексту

По честному, вообще не рекомендую программировать на чем либо, потому что программы ведут себя непредсказуемо.

Явное лучше, чем неявное. — Дзен Python

С учётом того, что, например, понять отсутствие элементов в итераторе можно только словив исключение, а не явно проверив, есть ли впереди ещё элементы — звучит как неудачная шутка.

не явно проверив, есть ли впереди ещё элементы

Как вы себе это представляете? Итератор — это не обязательно итератор по контейнеру. У него может вообще не быть материализованных «элементов впереди», они только генерятся по запросу.
Он может иметь такую природу, что любое обращение к последующему элементу необратимо меняет состояние, и просто взять и посмотреть на следующий элемент, не совершая шага итерации, — невозможно в принципе.
Вариант с исключением здесь — единственно разумный.

Совершенно верно, к тому же возможно получить следующий элемент без риска StopIteration используя next(iterator, None)

Я бы ещё добавил, что когда в определении функции не указаны имена аргументов, то autocomplete редактор кода не сможет ничего подсказать :) так что даже для декораторов удобно прописывать аргументы в явном виде

UFO just landed and posted this here
никогда не слышал, спасибо за исправление
UFO just landed and posted this here
просто где-то также видел в «неудачном» автопереводе, подумал, а вдруг так действительно правильно))
Sign up to leave a comment.

Articles