python内置函数iter返回一个迭代器对象,iter函数有两个参数,object 和 sentinel,如果没有sentinel实参,那么object必须是可迭代对象即必须实现__iter__() 方法。sentinel ,object必须是可调用对象。
iter(object[, sentinel])
不传sentinel
lst = [1, 2, 3 ,4]
lst_iter = iter(lst)
print(next(lst_iter))
print(next(lst_iter))
print(next(lst_iter))
print(next(lst_iter))
iter返回的是一个迭代器,使用next函数可以从迭代器中取出具体的值。
传sentinel
from functools import partial
with open('source_id', 'rb') as f:
for block in iter(partial(f.read, 64), b''):
print(len(block))
partial(f.read, 64) 返回一个偏函数,是可调用对象,一次读取64字节的数据。在for循环中,iter会一直调用这个偏函数,直到偏函数返回的内容是b'', 这代表文件内容读取到了末尾。
QQ交流群: 211426309