Py&禅

博客园 首页 新随笔 联系 订阅 管理
Problem:
如题

Solution:
一个简单的工厂类方法:
import string
def translator(frm='', to='', delete='', keep=None)
    if len(to)=1:
        to = to * len(frm)
    trans = string.maketrans(frm, to)
    if keep is not None:
        allchars = string.maketrans('', '')
        delete = allchars.translate(allchars, keep.translate(allchars, delete))
    def translate(s):
        return s.translate(trans, delete)
    return translate

discussion:
该工厂类的用法:
1.保留string 中的数字部分
>>> digits_only = translator(keep=string.digits)
>>> digits_only('Chris Perkins : 224-7992')
'2247992'



posted on 2010-06-05 11:33  Py&禅  阅读(262)  评论(0)    收藏  举报