0

タプルを次のようにキューに入れると、なぜですか。

myqueue.put(('Thread Started'))

そして、私は次のように.get()を呼び出します。

item = myqueue.get()
print item

これを印刷します:

('T', 'h', 'r', 'e', 'a', 'd', ' ', 'S', 't', 'a', 'r', 't', 'e', 'd')

この動作の理由は何ですか?元のタプルを元に戻すにはどうすればよいですか?

4

3 に答える 3

6

タプルはコンマで構成されます。

>>> (1,)
(1,)

ただし、これは「1」にすぎません。

>>> (1)
1
于 2013-01-20T21:18:56.603 に答える
5

これはタプルではなく、括弧のペアの文字列です。これはタプルです:

myqueue.put(('Thread Started', ))
于 2013-01-20T21:19:03.777 に答える
1

インスタンスの場合、記述されたコードmyqueueは出力を生成しません。Queue.Queue

あなたのコードは以下と同等です:

myqueue.put('Thread Started')
item = myqueue.get()
print item

そして、それはちょうど生成する必要があります: Thread Started.

タプルはコンマで作成されます:

t = 1,
# -> (1,)
t = 'a', 'b', 'c'
# -> ('a', 'b', 'c')

または、コンストラクターを明示的に呼び出すこともできます。

t = tuple("abc")
# -> ('a', 'b', 'c')

例外は、次のように作成された空のタプルです()

t = ()
# -> ()
t = tuple()
# -> ()
于 2013-01-20T21:34:00.397 に答える