1
from collections import deque

recvBuffer = deque()
x1 = b'\xFF'
recvBuffer.append(x1)
recvBuffer.extend(x1)
x2 = recvBuffer.pop()
x3 = recvBuffer.pop()
print(type(x1))
print(type(x2))
print(type(x3))

上面的代码打印以下内容Python 3.2.3

<class 'bytes'>
<class 'int'>
<class 'bytes'>

为什么将extend()-ed 变为双端队列时字节变为int?

4

1 回答 1

3

bytes记录为整数序列

“bytes”对象,它是一个不可变的整数序列,范围为 0 <= x < 256

当你时extend,你迭代序列。当你迭代一个bytes对象时,你会得到整数。请注意,deque与此无关。您将extend在普通列表上使用或仅使用for byte in x1.

于 2013-01-04T05:06:03.160 回答