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()されたときに、バイトがintに変更されたのはなぜですか?

4

1 に答える 1

3

bytes整数のシーケンスとして文書化されています

「bytes」オブジェクト。これは、0 <=x<256の範囲の整数の不変のシーケンスです。

あなたがするときextend、あなたはシーケンスを繰り返します。オブジェクトを反復処理すると、bytes整数が得られます。dequeこれとは何の関係もないことに注意してください。extend通常のリストで使用しても、または単にを使用しても、同じ動作が表示されfor byte in x1ます。

于 2013-01-04T05:06:03.160 に答える