2013-05-17 85 views
0
​​

以上是代碼。在這裏,我試圖在桌面上找到所有MS excel圖標,然後 逐一打印。當我運行這個時,只有第三行代碼的輸出在sikuli的消息框中可見,並且它沒有打印第五行。 輸出: -sikuli中列表()的奇怪行爲

nn -> [Match[470,936 53x56 score=0.98 target=center], Match[394,936 53x56 score=0.98 target=center] 

但是,當我在第三行替換list(nn)通過nn

print "nn -> ",nn 

我得到的輸出是: -

nn -> [email protected] 
excel --> Match[470,936 53x56 score=0.98 target=center] 
excel --> Match[394,936 53x56 score=0.98 target=center] 

我很困惑,爲什麼它是當我在第三行使用line()時不打印第5行。任何人都可以幫助我?

+0

上面的代碼中有一個錯誤。 「exfind」應替換爲「nn」。 –

+0

@MarcinKowalczyk對不起,我的意思是「nn」不是「exfind」,我編輯了代碼 –

回答

1

getLastMatches()返回類Finder的對象,它是一個Iterator。

以下代碼:

print "nn -> ",list(nn) 

迭代NN

print "nn -> ",nn 

不重複。

這就是爲什麼nn.hasNext()返回執行列表(NN)第一後假。爲了更好地理解它,運行兩次這樣的:

print "first while" 
while exfind.hasNext(): 
    print "excel --> ",exfind.next() 
print "second while" 
while exfind.hasNext(): 
    print "excel --> ",exfind.next() 

會有「第二,而」後沒有任何顯示。

+0

我現在明白了,非常感謝。 –