Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- db
- WinError5
- URI 원칙
- h2 데이타베이스
- 파이썬
- 쓰레드 풀
- 사이킷런
- streamlit
- conda remove
- 알고리즘
- 스프링 부트
- 자바 열거형
- openai
- 스프링 부트3
- oracle
- 완주하지못한선수
- Java
- 자바 로그 레벨
- 오라클
- 컬렉션 프레임웍
- GIT
- 사이킷런 회귀
- Python
- 셀레니움
- REST API
- Selenium
- 머신러닝
- 프로그래머스
- 차원증가
- 컬렉션 인터페이스
Archives
- Today
- Total
노트 :
제너레이터(Generator) 본문
generator
A function which returns a generator iterator.
It looks like a normal function except that it contains yield expressions for producing a series of values usable in a for-loop or that can be retrieved one at a time with the next() function.
generator iterator
An object created by a generator function.
Each yield temporarily suspends processing, remembering the location execution state (including local variables and pending try-statements).
When the generator iterator resumes, it picks up where it left off (in contrast to functions which start fresh on every invocation).
루프의 반복 동작을 제어할 수 있는 iterator 타입.
함수에서 사용하게 되면, 중간 값을 반환하여 사용할 수 있다.
기존의 함수는 return 을 만나게 되면 값을 리턴하고 모든 함수의 동작을 종료하게 된다.
그러나 generator를 사용한 함수에서는 yield를 만나면 해당 구문까지 실행 중이던 중간 값을 내보낸 다음 함수의 종료 없이 계속해서 끝에 도달할 때까지 실행된다.
예제.
def num_generator():
yield 0
yield 1
yield 2
for i in num_generator():
print(i)
해당 함수를 실행하면 다음 값을 얻을 수 있다.
0
1
2
num_generator()를 변수 g에 대입하여, 타입을 출력해보면 generator 객체라고 나온다.
g = num_generator()
print(type(g))
<class 'generator'>
generator 객체는 iterator 타입이므로, iterator의 끝까지 도달하면 StopIteration 에러를 반환한다.
num_generator() 함수를 변수 g에 저장하여 next() 함수로 확인해 보자.
sorce: https://docs.python.org/3/glossary.html#term-generator
'Python' 카테고리의 다른 글
Matplotlib (0) | 2023.03.27 |
---|---|
주소록 프로젝트 (0) | 2023.03.25 |
타입 힌트(Type Hint) (0) | 2023.02.23 |
Streamlit으로 간단한 웹페이지 만들기 (0) | 2023.01.28 |
Streamlit 설치 (0) | 2023.01.28 |