<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>生成器 on 老张开工了</title>
    <link>/%E7%94%9F%E6%88%90%E5%99%A8/</link>
    <description>Recent content in 生成器 on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 20 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/%E7%94%9F%E6%88%90%E5%99%A8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>迭代器与生成器</title>
      <link>/posts/2026/05/iterators-generators/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/05/iterators-generators/</guid>
      <description>迭代（Iteration）是编程中最基础也最重要的操作之一。Python 通过迭代器协议和生成器提供了强大而优雅的迭代机制。理解迭代器和生成器，不仅能让你写出更高效的代码，还能掌握处理大数据集和无限序列的能力。&#xA;迭代基础 可迭代对象 vs 迭代器 理解这两个概念是掌握 Python 迭代的基础：&#xA;from typing import Iterable, Iterator # 可迭代对象（Iterable）：可以用于 for 循环的对象 # 实现了 __iter__() 方法，返回一个迭代器 # 迭代器（Iterator）：负责产生数据的对象 # 实现了 __iter__() 和 __next__() 方法 # 常见可迭代对象 print(isinstance([], Iterable)) # True print(isinstance({}, Iterable)) # True print(isinstance(&amp;#34;hello&amp;#34;, Iterable)) # True print(isinstance(range(10), Iterable)) # True # 列表是可迭代对象，但不是迭代器 print(isinstance([], Iterator)) # False for 循环内部原理 # Python 的 for 循环等价于以下过程： # 你写的代码 for item in [1, 2, 3]: print(item) # Python 实际执行的代码 _iter = iter([1, 2, 3]) # 获取迭代器 while True: try: item = next(_iter) # 获取下一个值 print(item) except StopIteration: # 没有更多元素 break 理解这个机制很重要——它解释了为什么迭代器是惰性的（按需生成数据）以及为什么可迭代对象可以用于 for 循环。</description>
    </item>
  </channel>
</rss>
