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