【发布时间】:2016-08-18 06:23:42
【问题描述】:
我正在尝试创建一个使用 __iter__() 方法作为生成器的代码,但我收到一条错误消息:
TypeError: object() 没有参数。
另外,我不确定是否应该在 try: 或 main() 函数中调用我的 yield 函数
我对 Python 和编码还很陌生,因此非常感谢任何建议和建议,以便我学习。谢谢!
class Counter(object):
def __init__(self, filename, characters):
self._characters = characters
self.index = -1
self.list = []
f = open(filename, 'r')
for word in f.read().split():
n = word.strip('!?.,;:()$%')
n_r = n.rstrip()
if len(n) == self._characters:
self.list.append(n)
def __iter(self):
return self
def next(self):
try:
self.index += 1
yield self.list[self.index]
except IndexError:
raise StopIteration
f.close()
if __name__ == "__main__":
for word in Counter('agency.txt', 11):
print "%s' " % word
【问题讨论】:
-
请包括错误的 Traceback,它有帮助。
-
...您的
__init等方法末尾缺少两个下划线。这是__init__。这可能会导致错误。 -
而且缩进也太远了。
-
下划线的缩进和忘记的 init 是问题所在!非常感谢大家帮助我解决我愚蠢的错别字。
标签: python loops iterator generator yield