一种。拼写正确: 不可以
def __iter(self):
但:
def __iter__(self):
与
__之前 和 之后
iter。
b。使身体正确: 不* 正确 *
return 33
但:
yield 33
或返回iter([33])
如果您
return从中获得一个值
__iter__,则返回一个迭代器(如中的 iterable
return[33]几乎一样好,但不完全是…);否则,将
yield1+个值组合
__iter__成一个生成器函数(因此它本质上返回一个生成器迭代器)。
C。正确地说: 不
a().itervalues()
但是,例如:
for x in a(): print x
要么
print list(a())
itervalues是命令的一种方法,与无关
__iter__。
如果您解决了所有三个(!)错误,则代码会更好地工作;-)。



