• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

yield

20.10.10 15:40 작성 조회수 177

0

yield 키워드를 return 키워드 대신에 사용하는 이유가 궁금합니다!

return 으로 해보면 Request object is not iterable 이라고 뜨는데

제네레이터인 함수한테는 return 키워드를 아예 사용할 수 없는건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

기본적으로 프레임워크에서는 특유의 코드 작성 방법을 가이드하는 경우가 많고요. 해당 가이드에 맞춰서 작성하지 않으면, 프레임워크 내부의 코드와 약속한대로 동작하지 않기 때문에 에러가 납니다. 

기본적으로는 함수를 어떻게 만드느냐에 따라, yield 를 쓰든, return 을 쓸 수 있는 것은 맞습니다.

물론, 동작은 다르겠죠. yield 는 return과 비슷하지만 결과를 리턴하고 종료하지 않고 계속 실행하게 하고요. return 은 결과를 리턴하고 해당 함수를 종료하죠. 그런데, scrapy 프레임워크에서 해당 함수에서는 yield 를 써서, 반복적으로 해당 함수를 실행하도록 만들었고, 그렇게 쓰라고 가이드를 했기 때문에, 해당 코드에서 return 을 써서는 안되는 것이라고 생각해주시면 괜찮을 것 같습니다.

감사합니다.