python string.py 源码分析 三:maketrans
l = map(chr, xrange(256)) #将ascii转为字符串 _idmap = str('').join(l) del l # Construct a translation string _idmapL = None #定义一个全局变量 def maketrans(fromstr, tostr): """maketrans(frm, to) -> string Return a translation table (a string of 256 bytes long) suitable for use in string.translate. The strings frm and to must be of the same length. """ if len(fromstr) != len(tostr): raise ValueError, "maketrans arguments must have same length" global _idmapL if not _idmapL: _idmapL = list(_idmap) #将ascii 字符串转换为列表 L = _idmapL[:] #列表对象浅拷贝,目的是为了不影响global , or [x for x in _idmapL] or L = list(_idmapL) or L = copy.copy(_idmapL) fromstr = map(ord, fromstr) #功能与chr相反,即将char转换为对应的数字编码 for i in range(len(fromstr)): L[fromstr[i]] = tostr[i] #替换 return ''.join(L) #重组