该bytes
类型是Binary Sequence类型,并且明确记录为包含0到255范围内的整数序列。
从文档中:
字节对象是单个字节的不可变序列。
[…]
尽管字节文字和表示形式均基于ASCII文本,但字节对象实际上的行为就像不可变的整数序列,该序列中的每个值都受到限制,使得0 <= x < 256
[。]
[…]
由于bytes对象是整数序列(类似于元组),因此对于bytes object b
, ,而b[0:1]
将是bytes
长度为1的对象。(这与文本字符串形成对比,在文本字符串中,索引和切片都会产生一个字符串长度1)。
大胆强调我的。注意,在序列类型中索引字符串不是一个例外。'abc'[0]
给你一个str
长度为1的物体;str
是唯一始终包含其自身类型元素的序列类型。
这与其他语言如何处理字符串数据相呼应。在C语言中,unsigned char
类型实际上也是0-255范围内的整数。unsigned
如果您使用非限定char
类型,则许多C编译器默认为,并且文本被建模为char[]
数组。