Stan_Jones
@Stan_Jones
Python student

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

Просто неясен один момент из книги Марка Лутца - "Изучаем Python":
Левая часть инструкции должна быть получена всего один раз. В инструкции при <> X может оказаться сложным выражением, которое в комбинированной форме должно быть вычислено всего один раз. В более длинной форме записи <> X появляется дважды, и поэтому данное выражение должно быть вычислено дважды. Вследствие этого комбинированные инструкции присваивания выполняются обычно быстрее.
Мне неясен этот момент.
Заранее спасибо за объяснения.
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 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(), где она выполнится дважды.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы