[英]Python 3 itertools.islice continue despite UnicodeDecodeError
[英]Where is the source code for Python itertools.islice?
Python itertools.islice的源代码在哪里?
我找到了itertoolsmodule.c ,但找不到函数itertools.islice(也许它就在那里,但我对C代码知之甚少)。
我想了解当我这样做时会发生什么:
itertools.islice(spamreader, rowStart, rowFinish+1)
您正在查看旧的SVN存储库; 从那以后,Python逐渐转向了商业化。 我看看他的2.7版本的itertoolsmodule.c
; 源有一个islice
对象 。
当您调用itertools.islice()
您将创建该对象的新实例,因此将调用islice_new
。
使用3个参数,C struct中的next
设置为int(rowStart)
, stop
为int(rowFinish+1)
。 step
被留下作为None
, it
被设置为iter(spamreader)
最重要的是, cnt
设置为0
。 然后返回该对象。
所有迭代工作都在islice_next()
,在it
根据next,stop和step值it
进行迭代。
cnt
递增,并且根据需要调用next(it)
以使对象前进,直到cnt
等于或大于next
; 之后,每次调用islice_next()
都会产生一个项目,同时cnt
和next
递增,直到到达stop
位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.