[파이썬] 제너레이터와 yield 키워드

2025. 2. 8. 00:27·[파이썬]
728x90

제너레이터

제너레이터란 iterator를 직접 만들 때 사용하는 코드

yield 키워드를 사용하면 해당 함수는 제너레이터 함수가 되며 일반 함수와 달리 호출해도 함수 내부의 코드가 실행되지 않는다

제너레이터의 함수는 next() 함수를 사용해서 내부의 코드를 작동할 수 있다

next() 함수 사용 시 yield 키워드를 다시 만나기 전까지의 내용이 실행되며

반환값으로 yield 키워드 뒤에 있는 내용이 반환된다

def test():
    print("yield 0")
    yield 1
    print("hello")
    print("yield 1")
    yield 0
    print("yield 2")
    yield -1
    
output = test()

a=next(output)
b=next(output)
c=next(output)
print(a,b,c)

#result
yield 0
hello
yield 1
yield 2
1 0 -1
    

generator의 경우 next() 함수를 호출했을 때 yield 키워드를 만나지 못하면 StopIteration 예외가 발생하니 유의할 것

728x90

'[파이썬]' 카테고리의 다른 글

[파이썬] 모듈의 기초 사용법과 내장 모듈들(sys, math, datetime, time, urllib) 살펴보기  (0) 2025.02.12
[파이썬] try except 구문을 이용한 예외 처리와 raise 키워드  (0) 2025.02.10
[파이썬] 파이썬에서 파일 작업하기 (기초)  (0) 2025.02.08
[파이썬] 튜플과 람다  (0) 2025.02.08
[파이썬] recursion(재귀)와 메모화의 중요성  (0) 2025.02.08
'[파이썬]' 카테고리의 다른 글
  • [파이썬] 모듈의 기초 사용법과 내장 모듈들(sys, math, datetime, time, urllib) 살펴보기
  • [파이썬] try except 구문을 이용한 예외 처리와 raise 키워드
  • [파이썬] 파이썬에서 파일 작업하기 (기초)
  • [파이썬] 튜플과 람다
뽕규의 스케치북
뽕규의 스케치북
공부 열심히 해볼게요
  • 뽕규의 스케치북
    뽕규의 스케치북
    뽕규의 스케치북
  • 전체
    오늘
    어제
  • 링크

    • 파이썬 공식 문서
    • GitHub
    • 분류 전체보기 (37)
      • [파이썬] (17)
      • [데이터 분석] (3)
      • [Git&GitHub] (5)
      • [자료구조 & 알고리즘] (3)
      • [안드로이드 앱] (0)
      • [네트워크] (0)
      • [머신러닝 & 딥러닝] (0)
      • [SQL] (1)
      • [컴퓨터 구조 & 운영체제] (0)
      • [개발자 수학] (0)
      • [노션] (6)
      • [기타] (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    sourcetree
    pull
    DB
    깃허브
    github
    push
    함수
    소스트리
    *
    파이썬
    기초
    깃
    TODO
    개념
    발전
    공부
    노션
    GIT
    수식
    python
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
뽕규의 스케치북
[파이썬] 제너레이터와 yield 키워드
상단으로

티스토리툴바