Comments 11
Самодокументируемыми вроде слитно пишется. Иначе на финский язык смахивает очень)
Мне для лайка кармы не хватает, но коммент пропукает.
Спасибо.
Смотрю на эти бесконечные фичи и думаю. Слишком строгий язык - сложно написать, слишком свободный - тяжело прочитать. Вот бы где-то остановились уже. Этих вещей реально может быть бесконечно, и каждая "полезная" . Запретить свободу выражения - развития не будет. В общем, начинали бы тогда запрещать что ли какие-то старые конструкции хотя бы, т.е. меньше обратной этой совместимости бы что ли с каждой новой версией бы. Потому что невозможно просто. Молодым зашедшим норм, они могут старого не знать (или наоборот погано - заставят учить), а старым тяжело - опять новое учить (и легко, старый код не надо переписывать).
Короче походу скорость развития программных языков будет как развитие человеческих - зависеть от длины жизни людей...
Мне кажется, Python пытается идти путем "разумных defaults" и постепенного внедрения. Например, @dataclass или cached_property — это не усложнение, а, наоборот, упрощение, убирающее тонны шаблонного кода.
Насчет обратной совместимости — здесь палка о двух концах.
Метафора о длине жизни точна, прям задумался...
Мне как относительно молодому пока что прикольно и интересно учить новое. А пока старым есть что учить новое - так тоже хорошо, деменция чуть дальше )
Я на втором пункте дважды споткнулся:
Если fetch() возвращает текст ответа, результаты у gather() нужно принимать. А если принимаем результаты от gather(), умышленно или случайно return_exceptions оставлено в значении по умолчанию?
Учитывая itertools.batched(), намеренно ли сделана своя нарезка на чанки?
А за наводку на validate_call() спасибо!
В примере возвращаемое значение
fetch()не используется, пример был сделан для демонстрации "Контроль черезSemaphore+ чанки предотвращает OOM и блокировки API" . Я предполагал, что результаты сразу не нужны.return_exceptions = False- не случайно, в продакшене ошибки нужно обрабатывать, а вообще это зависит от бизнес задачи, если есть выбор то чаще проще не разбирать логи результатов, а сразу смотреть что не так.Иногда требуется добавить ручной rate limiting или backoff, но если всего этого не нужно, то batched() я думаю даже лучше
6 пример: добавил к коду print(s) - пишет: user: — role:
Практичные Python-привычки, которые реально повышают качество кода