Реализация системы, в которой, когда дело доходит до тяжелого математического подъема, я хочу сделать как можно меньше.
Мне известно, что существуют проблемы с запоминанием с пустыми объектами, и поэтому реализован кэш с отложенным ключом, чтобы избежать всего аргумента "Преждевременная оптимизация".
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
Что люди считают «лучшим способом» сделать это?