Новое для Python 3.2 - functools.lru_cache
. По умолчанию он кэширует только 128 последних вызовов, но вы можете установить maxsize
на None
, чтобы указать, что кеш никогда не истекает:
import functools
@functools.lru_cache(maxsize=None)
def fib(num):
if num < 2:
return num
else:
return fib(num-1) + fib(num-2)
Эта функция сама по себе очень медленно, попробуйте fib(36)
, и вам придется подождать около десяти секунд.
Добавление аннотации lru_cache
гарантирует, что если функция была вызвана в последнее время для определенного значения, она не будет компрометировать это значение, а использовать кешированный предыдущий результат. В этом случае это приводит к значительному улучшению скорости, в то время как код не загроможден деталями кеширования.
Попробуйте:
function re_name() {
var folder=DriveApp.getFolderById("folderId");
var files=folder.getFiles();
var date=new Date("August 29, 2018");
while(files.hasNext()){
var aux=files.next();
if(aux.getDateCreated() == date){
aux.setName(aux.getName().slice(0,-1));//remove last character
//aux.setName(aux.getName().replace(/s$/,'');//replace last s
//aux.setName(aux.getName().replace(/\w$/,'');//replace last word character[A-Za-z0-9_]
}
}
}