2012-06-16 98 views
1

我是新來的機械化python,如果有人能解釋爲什麼會發生這種情況會很好嗎?Python機械化Browser.links() - 奇怪的行爲

import mechanize 
br = mechanize.Browser() 
a = br.open('http://www.google.co.in') 
links = br.links() 
for link in links: 
    print link.url 

但是我做到這一點時再說,沒有東西打印出來

for link in links: 
    print link.url 

有人能解釋一下嗎?

回答

5

我最好的猜測是,也許br.links()返回一個生成器。這意味着它不會返回一個大的迭代,而是動態的,並在返回序列中的下一個值之前等待next被調用,因此除非您自己將變量存儲在list中,那麼它只是可用一次。

+0

用於提取問題中的'再次';它正在試圖迭代兩次的措辭略微微妙。 – lvc

+0

確實'type(links)'給出'' – bernie

+0

@ notbad.jpeg謝謝! – Manoj