Обновить

Комментарии 11

Самодокументируемыми вроде слитно пишется. Иначе на финский язык смахивает очень)

спасибо, исправил

Мне для лайка кармы не хватает, но коммент пропукает.
Спасибо.

*пропускает

Смотрю на эти бесконечные фичи и думаю. Слишком строгий язык - сложно написать, слишком свободный - тяжело прочитать. Вот бы где-то остановились уже. Этих вещей реально может быть бесконечно, и каждая "полезная" . Запретить свободу выражения - развития не будет. В общем, начинали бы тогда запрещать что ли какие-то старые конструкции хотя бы, т.е. меньше обратной этой совместимости бы что ли с каждой новой версией бы. Потому что невозможно просто. Молодым зашедшим норм, они могут старого не знать (или наоборот погано - заставят учить), а старым тяжело - опять новое учить (и легко, старый код не надо переписывать).

Короче походу скорость развития программных языков будет как развитие человеческих - зависеть от длины жизни людей...

Мне кажется, Python пытается идти путем "разумных defaults" и постепенного внедрения. Например, @dataclass или cached_property — это не усложнение, а, наоборот, упрощение, убирающее тонны шаблонного кода.

Насчет обратной совместимости — здесь палка о двух концах.

Метафора о длине жизни точна, прям задумался...

Мне как относительно молодому пока что прикольно и интересно учить новое. А пока старым есть что учить новое - так тоже хорошо, деменция чуть дальше )

Я на втором пункте дважды споткнулся:

  1. Если fetch() возвращает текст ответа, результаты у gather() нужно принимать. А если принимаем результаты от gather(), умышленно или случайно return_exceptions оставлено в значении по умолчанию?

  2. Учитывая itertools.batched(), намеренно ли сделана своя нарезка на чанки?

А за наводку на validate_call() спасибо!

  1. В примере возвращаемое значение fetch() не используется, пример был сделан для демонстрации "Контроль через Semaphore + чанки предотвращает OOM и блокировки API" . Я предполагал, что результаты сразу не нужны.

    return_exceptions  = False - не случайно, в продакшене ошибки нужно обрабатывать, а вообще это зависит от бизнес задачи, если есть выбор то чаще проще не разбирать логи результатов, а сразу смотреть что не так.

  2. Иногда требуется добавить ручной rate limiting или backoff, но если всего этого не нужно, то batched() я думаю даже лучше

6 пример: добавил к коду print(s) - пишет: user: — role:

спасибо, я потерял else: parts.append(item.value)

теперь пример рабочий

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации