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