Но у меня еще пара вопросов…
1. Что конкретно делает вот эта строка? Я понимаю, что это очень похоже на первый вопрос в этом треде, но я туплю… Я понимаю, что к self.cache_index мы обращаемся только если нужно нужного правила нет в cache, но почему тут “минус 1”?
return self.cache[self.cache_index - 1]
2. Далее по коду:
def build_match_and_apply_functions(pattern, search, replace): def matches_rule(word): return re.search(pattern, word) def apply_rule(word): return re.sub(search, replace, word) return (matches_rule, apply_rule) def plural(noun): for matches_rule, apply_rule in rules: if matches_rule(noun): return apply_rule(noun) raise ValueError('no matching rule for {0}'.format(noun))
Почему в одном случае matches_rule(word), а ниже - matches_rule(noun)? Разве атрибуты не должны одинаково в данном случае называться?