-
定义
__iter__
方法后 -
下面的例子简单实现一个
range(n)
from numpy import iterable
class MyList:
def __init__(self, len: int):
self.cursor = -1
self.length = len
def __iter__(self):
return self
def __next__(self):
if self.cursor+1 < self.length:
self.cursor += 1
return self.cursor
else:
exit(1)
def __repr__(self) -> str:
return f"MyList({self.length})"
x = MyList(10)
print(iterable(x))
for i in x:
print(i)
输出为:
True
0
1
2
3
4
5
6
7
8
9
使用 next()
一步一步迭代可以看的更清楚:
from numpy import iterable
class MyList:
def __init__(self, len: int):
self.cursor = -1
self.length = len
def __iter__(self):
return self
def __next__(self):
if self.cursor+1 < self.length:
self.cursor += 1
return self.cursor
else:
exit(1)
def __repr__(self) -> str:
return f"MyList({self.length})"
x = MyList(10)
print(iter(x))
print(next(x))
print(next(x))
print(next(x))
print(next(x))
for i in x:
print(i)
输出结果为:
MyList(10)
0
1
2
3
4
5
6
7
8
9
Original: https://blog.csdn.net/qq_51352578/article/details/125507312
Author: 红烧code
Title: Python魔法方法之__iter__
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/757452/
转载文章受原作者版权保护。转载请注明原作者出处!