파이썬(Python)/문법

yield, next 란

끄적끄적아무거나 2020. 11. 20. 07:35
반응형

파이썬 문법 중 yield와 next가 있다. 

 

일반적으로 함수에서 값을 뽑아 낼때는 return으로 값을 보내 준다. 

 

그리고 생성된 함수는 값을 return 함으로서 역할을 종료 한다. 가령 while 문이 무한으로 돌고 있어도

 

return을 맞이하면 종료 한다. 

 

yield는 값을 보내줄때 사용하는데 return 과 다른 점은 함수의 종료가 아닌 지속적으로 보내 줄 수 있다. 

 

이때 값을 받을 수 있는 방식이 next이다. 

 

아래 예제를 통해 이해해 보도록 하자.

 

def func_yield():
    a_var = 2
    yield a_var
    while True:
        a_var = a_var + 1
        yield a_var

b_var = func_yield()
c_var = func_yield()

print(next(b_var))
print(next(c_var))
print(next(b_var))
print(next(b_var))
print(next(b_var))

결과 >>

2
2
3
4
5

위 코드에서 처럼 next는 yield 값을 받을 때까지 함수를 진행해 주고 yield 값을 보내는 역할을 한다.

 

 

반응형