Python3 and ASCII

4

我正在学习Python,在下面的代码中,对于init()函数中的contents.encode()我有点困惑。

PY3 = sys.version_info[0] > 2


class Test:
    def __init__(self):
        self.contents = ''
        if PY3:
            self.contents = self.contents.encode('ascii')

你对它的哪一部分感到困惑了? - jwodder
1个回答

5
Python 3字符串是Unicode字符串。在某些情况下,您需要将数据转换为字节字符串,其中(通常)每个字符都是单个字节。 "string".encode('ascii') 创建了一个包含六个ASCII字符 s、t、r、i、n、g 的字节字符串,这些字符来自包含这些字符的Unicode字符串。
这是一个可移植性调整;Python 2字符串是字节字符串(尽管有 u"string" 表示法用于创建Unicode字符串,从Python 2.5开始,如果我没记错的话)。
要了解精确差异的更详细阐述,请参见http://nedbatchelder.com/text/unipain.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接