非常教程

Python参考手册

内置类型 | Built-in Types

Types: 5. Iterator Types

5. Iterator Types

2.2版本中的新功能。

Python支持对容器进行迭代的概念。这是使用两种不同的方法实现的; 这些用于允许用户定义的类支持迭代。下面更详细地描述的序列总是支持迭代方法。

需要为容器对象定义一个方法来提供迭代支持:

container.__iter__()

返回一个迭代器对象。该对象需要支持下面描述的迭代器协议。如果一个容器支持不同类型的迭代,可以提供额外的方法来专门为这些迭代类型请求迭代器。(支持多种形式迭代的对象的一个​​例子是支持广度优先和深度优先遍历的树结构。)此方法对应tp_iter于Python / C API中Python对象的类型结构的槽。

迭代器对象本身需要支持以下两种方法,它们一起构成迭代器协议

iterator.__iter__()

返回迭代器对象本身。这是允许容器和迭代器与forin语句一起使用所必需的。此方法对应tp_iter于Python / C API中Python对象的类型结构的插槽。

iterator.next()

从容器中返回下一个项目。如果没有其他项目,请举例说明StopIteration。此方法对应tp_iternext于Python / C API中Python对象的类型结构的插槽。

Python定义了几个迭代器对象来支持对通用和特定序列类型,字典以及其他更专用的形式的迭代。除了迭代器协议的实现之外,特定的类型并不重要。

该协议的意图是,一旦迭代器的next()方法提出StopIteration,它将继续在随后的调用中这样做。不遵守这一财产的实施被视为破产。(这个约束是在Python 2.3中添加的;在Python 2.2中,根据这个规则破坏了各种迭代器。)

5.1。发电机类型

Python的生成器提供了一种实现迭代器协议的便捷方式。如果容器对象的__iter__()方法作为生成器实现,它将自动返回提供__iter__()next()方法的迭代器对象(技术上讲,生成器对象)。有关生成器的更多信息可以在yield表达式的文档中找到。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法