프로그래밍/시행착오
파이썬 이터레이션 프로토콜
Cycrypt0
2021. 6. 29. 13:52
728x90
반복문을 사용하면서 in
을 통해 리스트나 JSON에 접근할 때, 현재 상태 다음에 접근해야 할 때가 생겼다.
아래의 코드는 현재 시간과 가장 가까운 스케줄과, 그 다음 스케줄을 출력하는 코드인데, 가장 가까운 스케줄을 출력 후 반복을 종료해야 하는데 그 다음 스케줄을 어떻게 출력해야 할까에 대한 해답을 찾다가 알게 되었다.
파이썬 이터레이션 프로토콜은 iterable 한 객체에 관해 사용 가능하며, 아래 예시를 통해 동작 방식을 알 수 있다.
dec = [1,2,3]
i = dec.__iter__()
print(i.__next__())
print(i.__next__())
print(i.__next__())
출력 결과
1 2 3이 차례로 나오는것을 볼 수 있다.
위 상태에서 한번 더 __next__()
를 호출하면 어떻게 될까?
Traceback (most recent call last):
File "C:\Users\test\Desktop\test\test.py", line 68, in <module>
print(i.__next__())
StopIteration
StopIteration 예외가 발생하며 중단되는 것을 볼 수 있다.
이러한 특징을 이용하면 다양하게 응용 가능 할 듯하다.
728x90