使用文件进行优化 分类: python 小练习 divide into python python基础学习 2014-01-01 14:13 228人阅读 评论(0) 收藏
#函数也是对象,将函数赋值给变量rule,使用rule接收参数,调用函数
#coding:utf-8 import re import string ''' rule.en内容: [szx]$ $ es [^aeioudgkprt]h$ $ es [^aeiou]y$ y$ ies $ $ $ ''' def buildRule((pattern,search,replace)): return lambda word:re.search(pattern,word) and re.sub(search,replace,word) def plural(noun,language='en'): lines = file('rules.%s' % language).readlines() patterns = map(string.split,lines) rules = map(buildRule,patterns) #函数也是对象,将函数赋值给变量rule,使用rule接收参数,调用函数 for rule in rules: result = rule(noun) if rusult: return result if __name__ == '__main__': plural(noun)
使用生成器:
#coding:utf-8 import re #rules()函数返回一个生成器对象 def rules(language): for line in file(r'rules.%s'%language): pattern,search,replace=line.split() yield lambda word:re.search(pattern,word) and re.sub(search,replace,word) def plural(noun,language='en'): for applyRule in rules(language): #返回的applyRule匿名函数也是一个对象,该对象接收参数,并进行函数调用 result = applyRule(noun) if result: return result if __name__ == '__main__': plural(noun)
版权声明:本文为博主原创文章,未经博主允许不得转载。