python中迭代器类
时间: 2024-08-15 13:07:08 浏览: 45
Python中的迭代器是一个实现了`__iter__()`和`__next__()`这两个特殊方法的对象。你可以通过`for`循环轻松地遍历这样的迭代器。
### 实现迭代器:
#### 定义迭代器类
一个简单的迭代器类需要实现两个魔术方法:
- `__iter__(self)`: 返回自身的实例本身作为迭代器的返回值。
- `__next__(self)`: 返回下一个元素,当到达序列的结尾时,引发`StopIteration`异常。
下面是如何创建一个迭代器的例子:
```python
class MyRangeIterator:
def __init__(self, start=0, stop=None, step=1):
self.current = start if stop is None else 0
self.stop = stop
self.step = step
def __iter__(self):
return self
def __next__(self):
if self.current >= self.stop:
raise StopIteration
current_value = self.current
self.current += self.step
return current_value
# 使用例子
iterator = MyRangeIterator(5)
while True:
try:
print(iterator.__next__())
except StopIteration:
break
```
### 迭代器的应用场景
1. **生成式表达式**:Python 中的生成式可以被视为一种高级的迭代器机制,用于创建只在使用过程中生成其元素的列表、集合等数据结构。
```python
numbers = (x for x in range(5))
for num in numbers:
print(num)
```
2. **文件处理**:对于大文件操作,使用迭代器可以有效地处理文件内容而无需将所有数据一次性加载到内存中。
```python
with open('large_file.txt', 'r') as file:
for line in file:
process(line)
```
3. **网络爬虫**:在网络请求中获取页面时,通常会使用迭代器逐步解析每个网页的内容。
4. **数据库查询**:从数据库中分批读取记录也是一种常见的迭代使用场景。
###
阅读全文