使用类创建一个自己的迭代器,实现range函数。包含__iter__方法和__next__方法,循环输出0-5。
时间: 2023-12-17 13:04:18 浏览: 29
好的,我理解了你的问题。以下是一个使用类创建迭代器并实现range函数的示例代码:
```python
class MyRange:
def __init__(self, stop):
self.current = 0
self.stop = stop
def __iter__(self):
return self
def __next__(self):
if self.current < self.stop:
result = self.current
self.current += 1
return result
else:
raise StopIteration
my_range = MyRange(6)
for num in my_range:
print(num)
```
输出结果为:
```
0
1
2
3
4
5
```
这个迭代器类中,`__init__` 方法初始化了两个属性:`current` 和 `stop`,分别表示当前迭代到的位置和迭代的结束位置。`__iter__` 方法返回一个迭代器对象本身,`__next__` 方法则是实现具体的迭代逻辑。在每次迭代中,如果当前位置小于结束位置,则返回当前位置并将 `current` 值加 1;否则抛出 `StopIteration` 异常表示迭代结束。使用这个自定义的迭代器类,我们可以循环输出 0-5 的数字。