분석
- 우리 모두는 ITER에 의한 반복자는 () 반복자를 반환 할 수 있다는 것을 알고.
- 당신이 사용할 수있는 반복 가능한라는 개체를 원하는 경우에, 당신은 __iter의 __ () 메소드를 구현해야합니다.
- 개체의 인스턴스에서는 반복자 클래스, 그것은 __iter의 __ ()와 __next의 __ () 메소드를 구현해야되고 싶어.
- 당신이 ITER ()를 호출하면, 기본 __iter의 __ (호출 객체)의 내부, 즉 __iter __ () 반환 값은 반복자이어야한다.
각주기, 또는 다음 (시간)의 경우, 반복자 __next의 __ () 메소드와 반환 값 전화를 자동으로됩니다.
실현
class Classmate:
def __init__(self):
self.names = []
self.num = 0
def add(self, name):
self.names.append(name)
def __iter__(self):
return self
def __next__(self):
if self.num < len(self.names):
ret = self.names[self.num]
self.num += 1
return ret
else:
raise StopIteration
c = Classmate()
c.add("张三")
c.add("李四")
c.add("王五")
for i in c:
print(i)
"""
张三
李四
王五
"""