fromnothing1 2021. 8. 10. 22:26

파이썬을 써보면 다른 언어와 다른 점이 많다 

 

그 중에 특이한 점은  for 문이라 할 수 있다. 

보통  for 문은 int i 가  0 부터 특정 수까지 순회 하는 구조로 작동한다. 

하지만  파이썬에서는 특정 리스트 ,튜플 , 딕셔너리등 의 멤버를 순차적으로 순회하는 모습을 한다 

 

for num in [11,22,33 ]

  print(num)

 

위의 코드는 실질적으로는 아래의 코드와 같이 동작한다. 

nums = [11,22,33]

it = iter(nums)
while True:
    try:
        num = next(it)
    except StopIteration:
        break
    print(num)

각각의 컨테이너는 내부함수  __iter__, __next__ 메서드가 존재하는데 

 

iter  은 반복자의 시작위치를 가진다. 

그리고 next 는 함수는 반복자의 다음 요소를 순서대로 꺼내고 컨테이너 끝에 도달하면 StopIteration 예외를 발생시킨다. 

 

이러한 위의 구조를 알고 있으면 여러 클레스의 for 문을 입맞에 맞춰서 구동 가능하다.