我被问到这个问题.鉴于代码:
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)
我怎样才能做到这一点?
如果实现__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)