2012-06-16 63 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