Skip to main content
 首页 » 编程设计

python之为什么我的 for 循环在我调用我的类时终止

2025年05月04日13del

每次程序在第三次运行此循环时终止:

for component_ID in self.component_IDs: 
    print component_ID 
    fundamentals(component_ID) 

这是我的基础类(class):

class fundamentals(download): 
 
    def __init__(self, ID): 
        self.browser = spynner.Browser() 
        self.url = self.getURL(ID) 
        self.browser.load(self.url) 
        html = self.browser.html 
        print "1" 
        soup = BeautifulSoup(html) 
        print "2" 
        self.count = self.get_count(soup) 
        self.currency = self.get_currency(soup) 
        self.fundamentals = self.get_fundamentals_pages(soup) 
        self.write_fundamentals_to_db(id, self.currency, self.count,  
                                      self.fundamentals) 

程序总是在 soup = Beautiful(Soup) 第 3 次执行时停止。 这与提供的 component_ID 无关。

component_ID 的长度为 30,当我在索引 2 处开始循环时,它也会运行两次并在第 3 次运行时停止。

这种奇怪的行为是如何发生的,下次我该如何预防?

更多信息:
此外,程序在第 3 次打印 1 后终止,没有出现错误消息。我不确定现在该做什么。

当我只实现了.close(),但是调用了上面的循环,它在循环一次后就停止了。当我将实例保存在属性 self.component_ID 中时,循环在循环两次后中断。

编辑: 我通过关闭 spynner.browser 并更改循环的工作方式解决了这个问题的先前版本。我不是仅仅调用类,而是构建一个列表并将实例附加到它。

请您参考如下方法:

关闭 spynner.browser 并更改循环的工作方式。不要仅仅调用类,而是构建一个列表并将实例附加到它。