파이썬(python)의 generator란?

iterable object를 특수한 방식으로 사용하는 형태

 

주소값만 가지고 있다가 사용자가 사용할 때 값을 메모리에 반환

 

 

out [114]를 보면 0x84~에 iterator가 있다는 거임. 주소값만 가지고 있음

 

next를 이용해 사용자가 사용을 하면 다음 위치의 값을 메모리에 반환시킴

 

큰 데이터를 처리할때 메모리를 효율적으로 사용할 수 있음

 

그림1. 일반적인 리스트의 메모리

 

그림2. generator의 메모리

 

그림1과 그림2를 보면 리스트가 메모리 528인데 generator는 메모리가 120으로 매우 작다

 

실제로 사용하고자 할 때 메모리에 값이 반환되어 보인다는 것이 for loop로 보인다

 

yield나 (), iter() 등으로 생성가능

 

 

위 그림은 ()를 사용해서 generator를 생성한 것

TAGS.

Comments