我想创建一个应该具有动态迭代器函数的Python类。也就是说,我想将迭代器函数作为参数发送,而不是在类中硬编码。
以下是一个示例类:
class fib:
def __init__(self, items, iter_function):
self.iter_function = iter_function
self.items = items
def __iter__(self):
self.iter_function(self.items)
有两个示例迭代器函数:
def iter_func(items):
for item in items:
yield item
def iter_func2(items):
for item in items:
yield item*2
当我使用以下内容创建对象时,出现错误:
a = fib([1,2,3],iter_func)
next(iter(a))
错误打印为:
----> 1 next(iter(a))
TypeError: iter() returned non-iterator of type 'NoneType'
任何想法都表示赞赏。