2

私はPythonを使い始めたばかりで、これについて読んでいないか、見逃していて、答えを見つけるために何を検索すればよいかわかりません。

IMAPモジュールをいじってみると、このコード行に出くわしました。

result, data = mail.search(None, "ALL")

ここで2つの変数はどうなっていますか?これは、メソッドが特定の方法を返すときに使用される構文ですか、それとも常に機能しますか?誰かがここで何が起こっているのかを説明するか、私にいくつかのドキュメントを教えてもらえますか?

4

3 に答える 3

10

これは、シーケンスの解凍の形式です。RHSが長さ2の反復可能である場合(LHSに2つのオブジェクトがあるため)、それを使用できます。例えば:

a,b = (1, 2)  #The RHS here is a tuple, but it could be a list, generator, etc.
print a #1
print b #2

Python3はこれを興味深い方法で拡張し、RHSがLHSよりも多くの値を持つことができるようにします。

a,b,*rest = range(30) 
print(a) #0
print(b) #1
print(rest == list(range(2,30))) #True
于 2012-10-16T20:42:42.220 に答える
3

Pythonで複数の変数を1行で割り当てることができます:-

a, b, c = 1, 2, 3

3つの値1、2、3をそれぞれa、b、cに割り当てます。

同様に、リストから変数に値を割り当てることができます。

>>> li = [1, 2, 3]    
>>> a, b, c = li
>>> a
1
>>> b
2

これにより、リストが3つの変数に解凍されます

于 2012-10-16T20:42:30.390 に答える
0

これは複数の割り当てです。変数resultとdataは、mail.search(none、ALL)から返される新しい値を同時に取得します。

右側の式はすべて、割り当てが行われる前に最初に評価されます。右側の式は、左から右に評価されます。

複数割り当てのドキュメントはこちら

http://docs.python.org/tutorial/introduction.html

于 2012-10-16T20:47:46.480 に答える