为什么使用 `iter` 函数的双参数形式而不是 while 循环?
Why use the two-argument form of the `iter` function instead of a while loop?
我在 python 中发现了 iter
内置函数,这是我以前从未见过的。它给出的 "real-world" 示例正在读取一个大文件:
from functools import partial
with open('mydata.db', 'rb') as f:
for block in iter(partial(f.read, 64), b''):
process_block(block)
但是,似乎可以使用基本的 while
循环来实现相同的效果,而不必使用花哨的函数(除非我弄错了)--
with open('mydata.db') as f:
while True:
block = f.read(50)
if not block: break
process_block(block)
使用iter
方法有什么好处?
iter
的双参数版本是一个方便的函数,有助于编写更简洁的代码。与您包含的等效 while
循环相比,它没有功能优势。
我在 python 中发现了 iter
内置函数,这是我以前从未见过的。它给出的 "real-world" 示例正在读取一个大文件:
from functools import partial with open('mydata.db', 'rb') as f: for block in iter(partial(f.read, 64), b''): process_block(block)
但是,似乎可以使用基本的 while
循环来实现相同的效果,而不必使用花哨的函数(除非我弄错了)--
with open('mydata.db') as f:
while True:
block = f.read(50)
if not block: break
process_block(block)
使用iter
方法有什么好处?
iter
的双参数版本是一个方便的函数,有助于编写更简洁的代码。与您包含的等效 while
循环相比,它没有功能优势。