исключение TypeError
Возникает, когда операция или функция применяется к
объект неподходящего типа. Связанное значение является строкой
предоставляя информацию о несоответствии типов.
В вашем случае это был __int__
, который должен был быть __init__
. И в качестве предложения вместо использования такого сложного способа создания итератора, просто используйте один класс и вызовите его напрямую.
Пример:
class Count:
"""Iterator that counts upward forever."""
def __init__(self, start):
self.num = start
def __iter__(self):
return self
def __next__(self): // This will go to infinity but you can applyyour own logic to
num = self.num
self.num += 1
return num
Вызов может быть выполнен одним из следующих способов:
>>> c = Count()
>>> next(c)
0
Или это:
>>> for n in Count():
... print(n)
...
0
1
2
(this goes on forever)