24 lines
490 B
Python
24 lines
490 B
Python
|
# user defined iterator used in something other than a for loop
|
||
|
|
||
|
class MyStopIteration(StopIteration):
|
||
|
pass
|
||
|
|
||
|
class myiter:
|
||
|
def __init__(self, i):
|
||
|
self.i = i
|
||
|
|
||
|
def __iter__(self):
|
||
|
return self
|
||
|
|
||
|
def __next__(self):
|
||
|
if self.i == 0:
|
||
|
raise StopIteration
|
||
|
elif self.i == 1:
|
||
|
raise StopIteration(1)
|
||
|
elif self.i == 2:
|
||
|
raise MyStopIteration
|
||
|
|
||
|
print(list(myiter(0)))
|
||
|
print(list(myiter(1)))
|
||
|
print(list(myiter(2)))
|