파이썬 이터레이션 프로토콜
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
'프로그래밍 > 시행착오' 카테고리의 다른 글
Python Dictionary가 비어있는지 확인하기 (0) | 2021.08.30 |
---|---|
Github Hook (0) | 2021.08.19 |
Django 공식 문서 (0) | 2021.07.16 |
[C++] 포인터 메모리 정적할당시 크기를 변수로 지정하기. (0) | 2021.07.15 |
[Django/Python] App 생성 후 URL 연결시 Import Error 해결 (0) | 2021.07.13 |