我建议你阅读Python文档中的术语表。
对于你给出的第二段代码,它是一个标准的迭代器其中iter返回self,next被反复调用返回值。
包含yield的函数被称为生成器,其返回值是生成器迭代器。其中不应当引发任何异常,如果你引发stopiteration,则会产生一个Runtime Error。还有for else 很少用,建议不要使用。
第一个例子中你的用法是错误用法,它没有实现迭代器,如果其他人调用next(obj)不能得到期望的结果。
我建议你重新学习基础内容
【 在 poggy 的大作中提到: 】
:
: 【 在 poggy 的大作中提到: 】
: :
: : 您需要再多学习学习基础知识,:)
: : 生成器函数本身就是一种特殊的迭代器。
#发自zSMTH@CDU.MP
--
FROM 171.120.158.*