Если у меня есть функцияPython: вызывать одну и ту же функцию с теми же аргументами несколько раз или сохранять результат как промежуточное значение?
def bar(n):
return n**100
Будет ли разница в производительности между
for i in range(1000000):
x = bar(30)
# use x for something
и
x = bar(30)
# use x for something 1,000,000 times
Я не знаю, если интерпретатор был оптимизирован для случаев, таких как это?
Возможный дубликат [ли Python оптимизирует вызовы функций из циклов?] (Http://stackoverflow.com/questions/7243444/does-python-optimize-function-calls-from-loops) – delnan
Также обратите внимание, что в императивном программировании языки, множественный вызов функции с теми же аргументами может иметь совершенно разные эффекты. Доказательство того, что некоторые такие вызовы могут быть опущены, может потребовать значительного межпроцедурного анализа, и для их включения требуется либо раннее связывание (которое просто * не существует * в Python), и оптимизационный компилятор, либо компилятор JIT. – delnan