如何循环一个类实例?

whi*_*way 0 python class

我被问到这个问题.鉴于代码:

class MockList:
    ...code_here...

for i in MockList():
    print(i)
Run Code Online (Sandbox Code Playgroud)

for循环的预期结果:

1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Ste*_*uch 6

如果实现__iter__()方法,则可以执行此功能:

码:

class MockList:

    def __iter__(self):
        return iter(range(1, 6))
Run Code Online (Sandbox Code Playgroud)

测试代码:

for i in MockList():
    print(i)
Run Code Online (Sandbox Code Playgroud)

结果:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)