对__iter __(self)和iter()感到困惑

时间:2018-06-09 15:30:07

标签: python python-3.x

我有一个这样的课程

class MyClass:
    def __init__(self):
        self.test = [1,2,3]

现在我想迭代test属性,如下所示:

a = MyClass()
for i in a:
    print(I)

所以我在课堂上添加了另一种方法:

def __iter__(self):
    return self.test

哪个不起作用,除非我这样做:

return iter(self.test)

我认为for循环隐含地在幕后调用iter(),如果我做for i in a.test显然能够迭代正常列表,所以显然我不了解一些关于使用这些功能。希望得到一些澄清

0 个答案:

没有答案