Home » Generator

Generator

파이썬은 처음이라 – 느긋하긴 처음이라

흔하지 않은 컨셉이기는 하나 느긋함(lazyness)이라는 컨셉은 코드를 바라보는 시각을 크게 바꿀 수 있는 중요한 지점이 될 수 있다. 이 글에서는 파이썬에서 느긋함이란 무엇이며, 파이썬에서는 어떻게 적용되는지, 그리고 이 컨셉을 통해서 기존 코드를 어떤식으로 개선할 수 있는지에 대해 살펴보도록 하겠다.  다음은 이 글의 내용과 예제 코드를 이해하는데 필요한 몇 가지 사전 정보이다. 

더 보기 »파이썬은 처음이라 – 느긋하긴 처음이라

파이썬 yield from – 다른 코루틴에게 작업을 위임하기

파이썬에선 함수 내부에 yield 키워드가 쓰였다면 이는 일반적인 함수가 아니라 제너레이터를 만드는 제너레이터 함수(혹은 코루틴 함수)가 된다. 제너레이터는 next() 함수를 통해서 생성하는 값을 꺼낼 수 있고, 동시에 .send() 메소드를 써서 그 내부로 값을 전달할 수 있다. 특히 이렇게 값을 주입해 줄 수 있는 제너레이터를 코루틴이라 한다고 했다. 코루틴 혹은 제너레이터의 내부에서 다른 코루틴이나 제너레이터의 결과값을 그대로 사용하는 경우가 있을 수 있다. 예를 들어 다음의 경우, 주어진 값으로부터 1씩 내렸다가 다시 0부터 n-1까지 값을 생성하는 제너레이터가 있다고 하자. 이렇게 제너레이터 내부에서… 더 보기 »파이썬 yield from – 다른 코루틴에게 작업을 위임하기

제너레이터 타입검사 (파이썬)

[[코루틴과 병렬처리]]에서 잠깐 다뤘지만, 제너레이터 타입인지를 검사하기 위해서는 types 모듈의 GeneratorType 클래스를 이용하면 된다. someGenerator = someGeneratorFunc() import types isassert isinstance(someGenerator, types.GeneratorType)