在Python 3中,字符串前面加`b`表示这是一个`bytes`对象,而不是`str`(Unicode字符串)。`bytes`类型用于处理二进制数据,而`str`类型用于处理文本数据。在Python 2中,`str`和`unicode`是主要的字符串类型,`bytes`类型并不存在。
`b'Hello World!'`:这是一个`bytes`对象,包含二进制数据。
`b`前缀用于区分`str`和`bytes`类型,在Python 2中并不需要这个前缀,因为`str`和`unicode`是默认的字符串类型。
需要注意的是,当与某些系统或库(如Redis)交互时,可能会出现Python 3读取到的是字节类型数据的情况,这可能是由于驱动程序的问题。在Python 2中,读取的数据通常是字符串类型。