Мы можем только догадываться, но этот код
abs(i - 0)
пытается материализовать расстояние между i
и 0
, как мы сделали бы
abs(x - y)
Кроме того, вычитание / добавление 0 не меняет значение с плавающей запятой (иначе это будет означать, что непрерывное добавление 0 приведет к смещению числа ...)
Обратите внимание, что оно имеет стоимостьПроцессор:
>>>
6 0 LOAD_GLOBAL 0 (abs)
3 LOAD_GLOBAL 1 (i)
6 LOAD_CONST 1 (0) <=== not optimized out
9 BINARY_SUBTRACT <=== not optimized out
10 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
13 RETURN_VALUE