本文共 2417 字,大约阅读时间需要 8 分钟。
示例代码:
```python def generator(): for i in range(10): yield i gen = generator() print(gen) ```示例代码:
```python def simple_generator(): yield 1 yield 2 yield 3 gen = simple_generator() print(next(gen)) # 输出: 1 print(next(gen)) # 输出: 2 print(next(gen)) # 输出: 3 ```示例代码:
```python def simple_generator(): yield 1 yield 2 yield 3 for value in simple_generator(): print(value) ```示例代码:
```python gen_expr = (x * x for x in range(5)) for value in gen_expr: print(value) ```示例代码:
```python def coroutine(): while True: received = yield print(f"接收到的数据: {received}") co = coroutine() next(co) # 预激生成器 co.send(10) # 输出: 接收到的数据: 10 co.send(20) # 输出: 接收到的数据: 20 ```示例代码:
```python def infinite_sequence(): num = 0 while True: yield num num += 1 gen = infinite_sequence() for i in range(10): print(next(gen)) ```示例代码:
```python def read_large_file(file_path): with open(file_path, 'r') as file: while True: line = file.readline() if not line: break yield line for line in read_large_file('large_file.txt'): print(line, end='') ```示例代码:
```python def pipeline_stage1(data): for item in data: yield item * 2 def pipeline_stage2(data): for item in data: yield item + 1 data = range(5) stage1 = pipeline_stage1(data) stage2 = pipeline_stage2(stage1) for value in stage2: print(value) ```示例代码:
```python def generator_with_cleanup(): print("生成器开始") try: yield "Hello" finally: print("生成器结束") gen = generator_with_cleanup() print(next(gen)) gen.close() # 触发 finally 块 ```示例代码:
```python def generator_with_exception_handling(): try: yield 1 yield 2 raise ValueError("发生错误") yield 3 except ValueError as e: print(f"捕获异常: {e}") gen = generator_with_exception_handling() for value in gen: print(value) ```转载地址:http://yiafk.baihongyu.com/