Задать вопрос
Stan_Jones
@Stan_Jones
Python student

Почему комбинированные инструкции выполняются быстрее традиционных?

Просто неясен один момент из книги Марка Лутца - "Изучаем Python":
Левая часть инструкции должна быть получена всего один раз. В инструкции при <> X может оказаться сложным выражением, которое в комбинированной форме должно быть вычислено всего один раз. В более длинной форме записи <> X появляется дважды, и поэтому данное выражение должно быть вычислено дважды. Вследствие этого комбинированные инструкции присваивания выполняются обычно быстрее.
Мне неясен этот момент.
Заранее спасибо за объяснения.
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@deliro
При такой записи разницы нет:
In [1]: x = 5

In [2]: 2 < x < 6
Out[2]: True

In [3]: x > 2 and x < 6
Out[3]: True

In [4]: %timeit 2 < x < 6
79.2 ns ± 0.301 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

In [5]: %timeit x > 2 and x < 6
80 ns ± 0.429 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)


а если x будет функцией (вроде 2 < x() < 6), тогда конечно в комбинированной записи функция исполнится только один раз против 2 < x() and 6 > x(), где она выполнится дважды.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы