yield가 있는 함수 호출 시 본문 미실행과 제너레이터 객체 반환 확인하기 (inspect.isgeneratorfunction, type())

·
Python
왜 이 내용을 정리하나파이썬에서 함수 안에 yield가 있으면 일반 함수처럼 동작하지 않는다. 함수를 호출하는 순간 본문 코드가 한 줄도 실행되지 않고, 제너레이터 객체만 돌아온다. 이 사실을 모르고 코드를 짜면 print가 안 찍히는 이유를 찾느라 시간을 낭비하기 쉽다. 특히 디버깅 중에 함수의 반환값을 확인할 때, 값이 나오지 않고 객체만 보여 당황하는 경우가 많다. 그래서 이 동작을 직접 확인할 수 있는 방법을 알아 둘 필요가 있다. 이 노트에서는 inspect.isgeneratorfunction과 type()으로 이 동작을 확인하는 방법을 정리해 본다.개념 설명함수 정의 안에 yield 키워드가 하나라도 있으면, 파이썬은 그 함수를 제너레이터 함수로 취급한다. 일반 함수는 호출하면 본문을 처음부터..