Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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
Tags more
Archives
Today
Total
관리 메뉴

냥집사의 개발일지

Python - 파이썬 기본 문법 정리 (generator) 본문

Python

Python - 파이썬 기본 문법 정리 (generator)

깅햄찌 2022. 10. 10. 21:16
반응형

안녕하세요 오늘은 파이썬의 generator에 대해 정리해보겠습니다.  

generator는 파이썬에서 sequence를 생성하는 객체입니다. 

따라서 iterator에 대한 data source로 자주 사용되는데요.

그렇다면 반복문을 이용하여 만든 sequence 생성 함수와는 어떤 차이점이 있을까요?

generator는 전체 sequence를 순회할 때마다 마지막으로 호출된 항목을 기억하고 다음 값을 반환합니다. 

(일반 함수는 이전 호출에 대한 메모리가 없습니다.)

글 만으로는 이해가 잘 되지 않으니 예제를 통해 알아보겠습니다. 

 

1) generator와 일반 함수와의 차이

def gen_friends():
    yield "Jeff"
    yield "Alana"
    yield "Electra"

def func_friends():
    friends_list = []
    friends_list.append("Jeff")
    friends_list.append("Alana")
    friends_list.append("Electra")
    return friends_list

print(gen_friends())
print(func_friends())

for x in gen_friends():
    print(x)

for x in func_friends():
    print(x)

     1. generator는 return이 아닌 yield로 값을 반환합니다. 

 

     2. 반복문으로 출력 시 결과는 같지만 한 줄식 실행해보면 

         gen_friends를 순회 시 순회할 때마다 값이 반환되지만

         func_friends를 순회 시 모든 단계를 순회하고 마지막에 모든 값이 반환됩니다.  

오늘은 파이썬의 generator에 대해 정리해보았습니다.  

다음 포스팅에서 만나요~ 

Comments