【 在 poggy 的大作中提到: 】
:
: 【 在 VincentGe 的大作中提到: 】
: : 我建议你阅读Python文档中的术语表。
: : 对于你给出的第二段代码,它是一个标准的迭代器其中iter返回self,next被反复调用返回值。
: : 包含yield的函数被称为生成器,其返回值是生成器迭代器。其中不应当引发任何异常,如果你引发stopiteration,则会产生一个Runtime Error。还有for else 很少用,建议不要使用。
我认为我很清楚,朋友,是你在这方面有问题。
可迭代对象不一定是迭代器,一个迭代器对象要求__iter__必须返回自身,实现了__next__对象才能是迭代器。生成器函数的返回值是生成器迭代器。
你错误的使用了__next__方法,你的第一方案会导致异常,请你重复调用next,你会发现你的迭代器无法终止。
另我建议你将你的内容置于上方,否则我的客户端无法正确引用你的回答
#发自zSMTH@CDU.MP
--
FROM 171.120.158.*