Обновить

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

Мне на первой работе (аутстафф) дали ТЗ по реализации каталога с использованием фреймворка, по устройству дали дополнительно неделю на то, чтобы официальную документацию по новому для меня питону прочитать. На все упомянутые нюансы можно в процессе ручной проверки наткнуться, их много, все не запомнить, зато со всеми можно разобраться.

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

Задача: нужно сделать 1000 запросов к внешнему API. Что выбрать?

Ничего. Просто один обычный цикл, возможно даже со sleep(5) внутри. Потому что как только вы попытаетесь распараллелить запросы, вас незамедлительно забанят за превышение рейт-лимитов

Индекс найдёт 50% строк — это почти весь стол

А плашка перевода не стоит...

Какая то разрозненная ерунда, одна половина вообще к python не особо относится, другая какие-то фичи из учебников, которые применяются раз в год. Ну ладно позднее связывание может ок.

Хз зачем это все джуну.

-- Индекс найдёт 50% строк — это почти весь стол

Как у вас таблица превратилась в стол? Это машинный перевод англоязычной статьи?

Почему же? Это почти весь стол

Не знаю зачем я прочитал, но было интересно и познавательно (не ирония).

Индекс — это отдельная структура данных (обычно B-tree), которая хранит отсортированные значения колонки и указатели на строки.

Это НЕ относится к кластерному индексу.

Почему нельзя просто проиндексировать всё?

Дополнительные расходы на обновление - вовсе не единственная причина. Не менее важно не забывать, что одна копия таблицы в запросе может использовать только один индекс, вне зависимости от того, сколько имеющихся индексов соответствуют условиям в запросе.

По поводу позднего связывания. Рожать лямбду с фейковым аргументом по умолчанию - ЭТО ПОРНОГРАФИЯ. Начнём хотя бы с того, что теперь эта лямбда может принимать аргументы!

А если вам и так уже нужна лямбда с аргументами?

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

```

# многословно
def make_nth_fun(n):
  def fun():
    return n
  return fun

funs = [make_nth_fun(i) for i in range(10)]

# в одну строчку, с разными именами, чтоб не запутаться
funs = [(lambda n: (lambda : n))(i) for i in range(10)]

Вот и всё.

print(sys.getsizeof(u1)) # ~48 байт + словарь ~232 байт = ~280 байт

print(sys.getsizeof(u2)) # ~56 байт — всё!

Для какой версии это написано нагенерено? В 3.11, который ну вот совсем не новый, 56 и 48.

Ну а уж запихивать проблемы индексов SQL в статью "по питону".... Это не проблема [не]знаний питона.

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

Публикации