Ste*_*han 1 python arrays string literals
我正在查看一些单元测试代码,我发现了这个:
self.assertIn(b'Hello', res.body)
Run Code Online (Sandbox Code Playgroud)
我知道这意味着bytes在Python 3中返回一个字节数组,正如我在这里找到的那样.我相信代码是为Python 3.3编写的,我试图弄清楚它在其他版本中是如何工作的(在我的情况下是2.7)我发现的相关问题有一个写得很糟糕的接受答案,其中含有令我困惑的相互矛盾的评论.
问题:
b'myString'"工作"?这已在您链接的文档中描述.
b'myString'"工作"?:2.6+.bytes文字 - 这与str2.x中的文字完全相同.bytes文本,这是不一样的东西作为一个str在3.x的字面2to3.引用您链接的部分中的第一段:
为了将来的兼容性,Python 2.6添加
bytes了该str类型的同义词,它还支持b''表示法.
请注意,正如它说几行,Python 2.x bytes/ str与Python 3.x的类型不完全相同bytes:"最值得注意的是,构造函数完全不同".但是字节文字是相同的,除了在边缘情况下你将Unicode字符放入字节文字(在2.x中没有明确的含义,但做一些任意的,有时可能恰好是你所希望的,在3.x中它是有保证的SyntaxError).