python内置函数iter详解

iter函数功能作用

python内置函数iter返回一个迭代器对象,iter函数有两个参数,object 和 sentinel,如果没有sentinel实参,那么object必须是可迭代对象即必须实现__iter__() 方法。sentinel ,object必须是可调用对象。

iter函数语法

iter(object[, sentinel])

参数

  • object 可迭代对象或者可调用对象
  • sentinel 当传入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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案