繁体   English   中英

Python itertools.islice的源代码在哪里?

[英]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)stopint(rowFinish+1) step被留下作为Noneit被设置为iter(spamreader) 最重要的是, cnt设置为0 然后返回该对象。

所有迭代工作都在islice_next() ,在it根据next,stop和step值it进行迭代。

cnt递增,并且根据需要调用next(it)以使对象前进,直到cnt等于或大于next ; 之后,每次调用islice_next()都会产生一个项目,同时cntnext递增,直到到达stop位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM