一尘不染

Python-字符串文字前的'b'字符做什么?

python

显然,以下是有效的语法

my_string = b'The string'

我想知道:

  1. 这是什么b字在前面的字符串是什么意思?
  2. 使用它有什么作用?
  3. 在什么情况下可以使用它?
    我在SO上找到了一个相关的问题,但是这个问题是关于PHP的,它指出b用来表示字符串是二进制的,而不是Unicode,Unicode是要从PHP <6版本兼容的代码,当迁移到PHP 6时。我认为这不适用于Python。

我确实在Python站点上找到了有关使用相同语法的字符将字符串指定为Unicode的文档u。不幸的是,它在该文档的任何地方都没有提到b字符。

而且,只是出于好奇,有没有比多符号b和u是做其他事情?


阅读 1285

收藏
2020-02-07

共1个答案

一尘不染

引用Python 2.x文档:

在Python 2中,前缀'b''B'被忽略;它表示文字应该在Python 3中变成字节文字(例如,当代码自动用2to3转换时)。前缀“ u”“ b”后可以带有前缀“ r”

在Python 3中的文件状态:

字节字面量始终以“ b”“ B”为前缀;它们产生字节类型的实例而不是str类型。它们只能包含ASCII字符;数值等于或大于128的字节必须用转义符表示。

2020-02-07