yield와 return의 차이 이해하기

소환인·2023년 10월 9일
0

파이썬

목록 보기
3/8

오늘은 두 가지 중요한 파이썬 키워드, 'yield'와 'return'에 대해 포스팅하려고 한다. 이 두 키워드는 함수에서 값을 반환하는 방법에 사용되지만, 그들의 작동 방식은 조금 다르다.이 포스트에서는 'yield'와 'return'의 차이점과 각각 어떻게 사용되는지에 대해 알아보겠다.

return

'return'은 함수에서 값을 반환하고 함수의 실행을 종료하는 역할을 한다. 함수가 호출되면, return 문에 지정된 값을 호출자에게 반환한 다음 함수를 종료한다.

예제:

def sum(a, b):
    result = a + b
    return result

total = sum(5, 3)
print(total)  # 출력: 8

이 예제에서 sum 함수는 두 개의 인자를 받아서 더한 후, 결과를 return으로 반환한다. return 문을 실행하면 함수의 실행이 종료되고, 값이 호출자에게 반환된다.

yield

반면에 'yield'는 함수의 실행을 일시 중지하고 호출자에게 값을 반환한 후, 함수의 실행을 재개한다. 이를 통해 함수는 이전 상태를 기억하고 다음 호출 때 이어서 실행할 수 있다. 'yield'는 주로 반복 가능한 객체를 생성하는 데 사용된다.

예제:

def count_up_to(max):
    count = 1
    while count <= max:
        yield count
        count += 1

counter = count_up_to(5)
for number in counter:
    print(number)

출력:

1
2
3
4
5

이 예제에서 count_up_to 함수는 yield를 사용하여 숫자를 하나씩 반환한다. yield가 호출되면 함수의 실행이 일시 중지되고, 숫자가 호출자에게 반환된다. 다음 숫자가 필요할 때 함수는 중지된 지점에서 계속 실행된다.

정리

  • return은 값을 반환하고 함수의 실행을 종료한다.
  • yield는 값을 반환하고 함수의 실행을 일시 중지한 후 재개한다.
  • yield는 주로 반복 가능한 객체, 즉 제너레이터를 생성하는 데 사용된다.
profile
돌고돌아

0개의 댓글