학습 정리 - 제너레이터 함수와 get( ) / filter( )

수아·2025년 4월 2일
0

학습 정리

목록 보기
45/51
post-thumbnail

회고 리스트

1. 파이썬 문법에서 아래를 설명 하시오.

- 제너레이터(Generator) 함수

제너레이터 함수는 파이썬에서 값을 한 번에 하나씩 반환하는 이터레이터를 생성하는 함수이다.
일반 함수와는 다르게 return 대신 yield를 사용해서 값을 반환한다.
제너레이터를 사용하면 메모리를 효율적으로 사용할 수 있어 많은 양의 데이터를 처리할 때 유용하다.

- yield

yield는 제너레이터 함수에서 사용되는 키워드로 함수를 일시 중지하고 현재 값을 반환한다.
그리고 다시 제너레이터를 호출하면 중지했던 위치에서 계속 실행한다.
return과 달리 함수를 종료하지 않고 함수의 상태를 유지하면서 값을 순차적으로 만들어낼 수 있다.


2. 장고에서 아래의 차이점은?

product1 = Product.objects.get(id=1)
product2 = Product.objects.filter(id=1)

- get( )

get( )은 객체 하나를 가져오고 객체가 없으면 DoesNotExist 오류 / 객체가 여러 개면 MultipleObjectsReturned 오류 발생

- filter( )

filter( )는 QuerySet으로 결과를 반환하기 때문에 값이 없으면 빈 QuerySet을 반환 / 여러 개면 모두 포함한 QuerySet을 반환

일반적으로 하나의 객체를 명확히 가져올 땐 get( )을 사용하고 여러 개의 객체를 조회할 땐 filter( )를 사용한다.

0개의 댓글