반응형
다음과 같은 생성기 기능이 있습니다.
def myfunct():
...
yield result
이 함수를 호출하는 일반적인 방법은 다음과 같습니다.
for r in myfunct():
dostuff(r)
내 질문에, 내가 원할 때마다 생성기에서 하나의 요소 만 얻을 수있는 방법이 있습니까? 예를 들어 다음과 같이하고 싶습니다.
while True:
...
if something:
my_element = pick_just_one_element(myfunct())
dostuff(my_element)
...
해결 방법
다음을 사용하여 발전기 만들기
g = myfunct()
아이템을 원할 때마다
next(g)
(또는 Python 2.5 이하에서는 g.next ()
).
생성기가 종료되면 StopIteration
이 발생합니다. 필요한 경우이 예외를 포착하거나 next ()
에 default
인수를 사용할 수 있습니다.
next(g, default_value)
참조 페이지 https://stackoverflow.com/questions/4741243
반응형
'파이썬' 카테고리의 다른 글
파이썬으로 배열 섞기, 파이썬으로 배열 항목 순서 무작위 화 (0) | 2020.10.15 |
---|---|
파이썬 조건 문의 괄호 (0) | 2020.10.15 |
파이썬 'cv2'라는 모듈이 없습니다. (0) | 2020.10.14 |
파이썬 x 초마다 함수를 반복적으로 실행하는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.14 |
파이썬 "x for x in"구문은 무엇을 의미합니까? (0) | 2020.10.14 |
댓글