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