本文介绍了我不知道python中的__iter__,谁能给我一个很好的代码示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码运行错误

class a(object):
    def __iter(self):
        return 33
b={'a':'aaa','b':'bbb'}
c=a()
print b.itervalues()
print c.itervalues()

请尝试使用代码而不是文本,因为我的英语不是很好,谢谢

Please try to use the code, rather than text, because my English is not very good, thank you

推荐答案

a。拼写正确:

   def __iter(self):

但是:

   def __iter__(self):

__ 之前 iter 之后。

b。使身体正确:

return 33

但是:

yield 33


返回iter([33])

or return iter([33])

如果 __ iter __ 返回值,则返回迭代器( iterable ,如在 return [33] 中,几乎一样好但不完全......);或者, yield 1+值,使 __ iter __ 进入生成器函数(因此它本质上返回生成器迭代器)。

If you return a value from __iter__, return an iterator (an iterable, as in return [33], is almost as good but not quite...); or else, yield 1+ values, making __iter__ into a generator function (so it intrinsically returns a generator iterator).

c。称之为正确:

a().itervalues()

但是,例如:

for x in a(): print x

print list(a())

itervalues 是一种dict方法,与 __ iter __ 无关。

itervalues is a method of dict, and has nothing to do with __iter__.

如果你修复了所有三个(!)错误,代码效果会更好; - )。

If you fix all three (!) mistakes, the code works better;-).

这篇关于我不知道python中的__iter__,谁能给我一个很好的代码示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 21:08