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?

最佳答案

bytesdocumented是整数序列:


  “字节”对象,它是范围在0

当您extend时,您遍历序列。遍历bytes对象时,将获得整数。请注意,deque与此无关。使用普通列表中的extend或仅使用for byte in x1您将看到相同的行为。

关于python - 扩展时,双端队列将字节更改为整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14151245/

10-12 20:50