一个问题基于this snippet,作者对此的评论如下:
只要从特征码文件中读取的规则与我们尝试复数的词不匹配,此读取,构建和缓存过程就会继续。如果确实在文件末尾找到匹配的规则,则只需使用它并停止,文件仍处于打开状态即可。文件指针将停留在我们停止读取的任何位置,等待下一个readline()命令。同时,缓存中现在有更多项目,如果我们从头开始尝试对一个新单词进行复数操作,请先尝试缓存中的每个项目,然后再从中读取下一行图案文件。
答案 0 :(得分:0)
plural
函数中:for matches_rule, apply_rule in rules:
if matches_rule(noun):
LazyRules
类的新实例(例如rules = LazyRules()
)都以其自己的空缓存(self.cache = []
下的__init__
)开始。第一次之后,每次在该对象(for ... in rules
)上进行迭代时,它都可以使用该缓存。