Python ленивый оценщик
Есть ли Pythonic способ инкапсулировать ленивый вызов функции, посредством чего при первом использовании функцииf()
, он вызывает ранее связанную функциюg(Z)
и на последующих звонкахf()
возвращает кэшированное значение?
Обратите внимание, что запоминание может быть не совсем подходящим.
Я имею
f = g(Z)
if x:
return 5
elif y:
return f
elif z:
return h(f)
Код работает, но я хочу реструктурировать его так, чтобыg(Z)
вызывается только если используется значение. Я не хочу менять определениеg(...)
, а такжеZ
немного большой для кеширования.
EDIT: я предположил, чтоf
должно быть функцией, но это может быть не так.