for self.number in ...
происходит присваивание self.number, а по логике не должно. После for должна стоять просто переменная-счетчик, значения которой меняются от number до upper_limit. >>> i = -1
>>> for i in range(10, 13):
... print(i)
...
10
11
12
>>> i
12