2012-02-29 21 views
-4

我有以下,但不斷得到TypeError:'Item'對象不可迭代。誰能幫我?找不到我的程序中的錯誤

import xlrd 

class Item (object): 
    def __init__(self): 
     pass 

    def readItems(self): 
     wb = xlrd.open_workbook("data3.xls") 
     sh = wb.sheet_by_index(0) 
     sh1 = wb.sheet_by_index(1) 
     for i in range(1, sh.nrows): 
      item = Item() 
      item.matNumber = sh1.row_values(i)[0] 

class System(Item): 

def __init__(self): 
     self.item = item 

    def ABC(self): 
     for i in self.item: 
      print item.matNumber 

item = Item()    
system = System() 

system.ABC() 
+7

錯誤消息似乎很清楚。 'Item'不提供任何可迭代的接口。你認爲'我'在'self.item'裏面嗎?另外,你最好將'item'作爲參數傳遞給'System'構造函數。如果你想讓'Item'迭代,看一下[documentation](http://docs.python.org/tutorial/classes.html#iterators)。 – 2012-02-29 11:19:04

+0

還修復標識。 – Odomontois 2012-02-29 11:40:37

回答

1

您將self.item定義爲一個項目。如果您然後使用for循環爲單個項目它不可迭代。

您應該在第一個for循環中創建一個項目列表並將其追加到它,然後使用項目遍歷它。