Хорошая идея, но мы старались не усложнять туториал, поэтому использовали inspect.
Кстати, изначально фреймворк был реализован на декораторах, но потом мы отказались от такого подхода, потому что он требует более глубокой интеграции - нужно явно импортировать декоратор и прописать его перед всеми методами. А аннотации не так сильно перегружают код и их можно задавать без фреймворка.
По поводу кеширование запишем в список улучшений на будущее!
Можете привести конкретный пример? В нашем случае точка входа всегда одна - это целевой метод, а аргументов может быть несколько. Такой пример есть в статье, см. calc_avg(p: 'price_list', l: 'num_days')
Фокус в том, что он перебирал не 32768 комбинаций, а гораздо меньшее подмножество (условно логарифм от этого числа), об этом стоило упомянуть в статье. Исходный код решения http://github.com/GiancarloLelli/quantum и ссылка на сам контест http://www.qdayprice.org/faqs
Хорошая идея, но мы старались не усложнять туториал, поэтому использовали inspect.
Кстати, изначально фреймворк был реализован на декораторах, но потом мы отказались от такого подхода, потому что он требует более глубокой интеграции - нужно явно импортировать декоратор и прописать его перед всеми методами. А аннотации не так сильно перегружают код и их можно задавать без фреймворка.
По поводу кеширование запишем в список улучшений на будущее!
Можете привести конкретный пример? В нашем случае точка входа всегда одна - это целевой метод, а аргументов может быть несколько. Такой пример есть в статье, см. calc_avg(p: 'price_list', l: 'num_days')