Реализация системы, в которой, когда дело доходит до тяжелой математической работы, я хочу делать как можно меньше.
Я знаю, что существуют проблемы с запоминанием с несколькими объектами, и поэтому реализовал кеш с отложенным ключом, чтобы избежать всего аргумента «Преждевременная оптимизация».
def magic(numpyarg,intarg):
key = str(numpyarg)+str(intarg)
try:
ret = self._cache[key]
return ret
except:
pass
... here be dragons ...
self._cache[key]=value
return value
но поскольку преобразование строк занимает довольно много времени ...
t=timeit.Timer("str(a)","import numpy;a=numpy.random.rand(10,10)")
t.timeit(number=100000)/100000 = 0.00132s/call
Что люди считают «лучшим способом» сделать это?