python内置了一个ascii函数,此函数的作用于repr函数和str函数基本相同,不同的是,ascii函数只能返回ascii字符,对于非ascii字符,它会使用\x,\u等escape的方式进行转义。
repr函数调用对象的__repr__函数;str函数调用对象的__str__函数。而ascii函数其实也是调用__repr__函数,只是会对__repr__函数返回的字符串进行ascii化处理。
>>> a = '12345abcde'
>>> str(a)
'12345abcde'
>>> repr(a)
"'12345abcde'"
>>> ascii(a)
"'12345abcde'"
下面我们在代码中加点中文:
>>> b = '麦新杰的pynote.net'
>>> str(b)
'麦新杰的pynote.net'
>>> repr(b)
"'麦新杰的pynote.net'"
>>> ascii(b)
"'\\u9ea6\\u65b0\\u6770\\u7684pynote.net'"
>>> print(ascii(b))
'\u9ea6\u65b0\u6770\u7684pynote.net'
>>> eval(ascii(b))
'麦新杰的pynote.net'
4个中文字符,在ascii函数中被转换成了\\u开始的表达方式。
这就是python内置的ascii函数的作用,很简单,在纯英文的环境下,用来代替repr函数是可以的。
-- EOF --