Skip to Content
流畅的Python(第2版)
book

流畅的Python(第2版)

by Luciano Ramalho
April 2023
Intermediate to advanced
769 pages
25h 16m
Chinese
Posts & Telecom Press
Content preview from 流畅的Python(第2版)
462
17
为了表达清楚,我在原示例的基础上增加了
read64
赋值。
partial()
函数不可省略,因为
提供给
iter()
的可调用对象必须不接受参数。在这个示例中,哨符是一个空
bytes
对象,
这就是无字节可读时
f.read
返回的对象。
17.4
节详述可迭代对象与迭代器之间的关系。
17.4
 可迭代对象与迭代器
17.3
节的说明可以推知下述定义。
可迭代对象
使用内置函数
iter
可以获取迭代器的对象。如果对象实现了能返回
迭代器
__iter__
方法,那么对象就是可迭代的。序列都可以迭代。实现了
__getitem__
方法,而且接受
0
开始的索引,这种对象也可以迭代。
我们要明确可迭代对象与迭代器之间的关系:
Python
从可迭代对象中获取迭代器。
下面是一个简单的
for
循环,迭代一个字符串。这里,字符串
'ABC'
是可迭代对象。表面
上看不出来,但是背后有一个迭代器。
>>> s = 'ABC'
>>> for char in s:
... print(char)
...
A
B
C
假如没有
for
语句,我们就不得不使用
while
循环模拟,要像下面这样写。
>>> s = 'ABC'
>>> it = iter(s)
>>> while True:
... try:
... print(next(it))
... except StopIteration:
... del it
... break
...
A
B
C
根据可迭代对象构建迭代器
it
不断在迭代器上调用
next ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Python高级编程(第2版)

Python高级编程(第2版)

Posts & Telecom Press, Michał Jaworski, Tarek Ziadé
Python贝叶斯分析(第2版)

Python贝叶斯分析(第2版)

Posts & Telecom Press, Osvaldo Martin
高效能PYTHON程式設計

高效能PYTHON程式設計

Micha Gorelick, Ian Ozsvald

Publisher Resources

ISBN: 9787115612366