1
我試圖創建一個迭代器,從文本文件中提取每個單詞並遍歷它們。這就是我現在所擁有的:Python自定義迭代器:通過非序列迭代
class String_iterator:
def __init__(self, filename):
self.words = []
f = open(filename, 'r')
lines = f.readlines()
for line in lines:
self.words.extend(line.split(" "))
self.ind = 0
self.size = len(self.words)
def __iter_(self):
return self
def next(self):
if self.ind > self.size:
raise StopIteration
else:
self.ind += 1
return self.words[self.ind-1]
比較它與Python的迭代器功能簡單的例子,我想不通爲什麼它不工作時,我嘗試甚至一個簡單的情況下使用它:
sit = String_iterator(filename)
for word in sit:
print word
我得到的錯誤:
Traceback (most recent call last):
File "WordCounter.py", line 68, in <module>
for word in sit:
TypeError: iteration over non-sequence
我猜測,有什麼不對的String_iterator
,它不是一個適當的迭代器,但我想不出什麼。
(我還分別具有與編碼問題在文件中讀取,但這是另一個問題完全...)
哇。我現在覺得很蠢。但是,謝謝。 – Pterosaur