【 在 VincentGe 的大作中提到: 】
:
: 我认为我很清楚,朋友,是你在这方面有问题。
: 可迭代对象不一定是迭代器,一个迭代器对象要求__iter__必须返回自身,实现了__next__对象才能是迭代器。生成器函数的返回值是生成器迭代器。
: ...................
我认为是你以为我的理解是错误的, 说明你还是没明白我帖子的意思
我已经和你说了一遍了, 我是要实现for in 循环, 并使用生成器函数, 就这么简单一个需求。
你张嘴一个这错了, 闭嘴一个这错了, 还不够添乱的
我的第一个方案是仿照迭代器实现生成器, 是有点不伦不类,否则,我也不会奇怪发帖子。
后面, 我自己给出了, 一个通常迭代器的 __iter__ __next__的实现。
之后, 我自己也试出来生成函数的实现, 只要__iter__ 里面返回一个生成函数就够了, 至于生成函数用什么名字,
并不重要, 也就是 把 __next__换成个普通名字的函数也一样。
这样 for x in obj
就会被翻译成 调用obj.__iter__ 返回一个生成函数, for 会对生成函数反复调用来yield到正确的值。
--
FROM 124.126.0.*