Ваш __pow__
возвращает список, а не Iteration
экземпляр. Операции +
и *
являются операциями списков, и списки реализуют +
и *
как конкатенацию и повторение.
[1, 4, 9] + 3 * [1, 8, 27]
повторяется [1, 8, 27]
3 раза, чтобы получить [1, 8, 27, 1, 8, 27, 1, 8, 27]
, затем объединяет [1, 4, 9]
и [1, 8, 27, 1, 8, 27, 1, 8, 27]
.
Вам необходимо вернуть экземпляр Iteration
из __pow__
, и вам также нужно реализовать __add__
и __mul__
, а не только __pow__
. Пока вы работаете над этим, вы также можете реализовать __str__
или __repr__
, чтобы при печати вы могли видеть данные, которые обертывает ваш объект Iteration
.