-
Python 2.2
Python 2.2 에서는 lightweight coroutine 지원이 추가되었고 이를 generator라고 부른다(PEP 255 – Simple Generator).
유사한 두 함수 선언
def fun1(): print('print 1') print('print 2') def gen1(): print('yield 1') yield 10 print('yield 2') yield 20
실행의 차이
>>> fun1() print 1 print 2 >>> gen1() <generator object gen1 at 0x0000000001FAAB30>
내부적 구분 type값 비교. 'generator'라는 차이가 보인다.
>>> type(fun1()) print 1 print 2 <class 'NoneType'> >>> type(fun1) <class 'function'> >>> >>> type(gen1()) <class 'generator'> >>> type(gen1) <class 'function'> >>>
'generator' type의 실행
>>> g1 = gen1() >>> next(g1) yield 1 10 >>> next(g1) yield 2 20 >>> next(g1) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>> next(g1) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
'Python' 카테고리의 다른 글
Python pip 대상 라이브러리 버전 확인 (0) 2021.03.10 Python pip 명령어 (0) 2021.03.10 Python 저장소 악성 코드 발견 (0) 2021.03.05 Python - Coroutine (Python 2.4) (0) 2020.11.07 Python - inspect (0) 2020.09.09 Python - TkInter gui 기초 (0) 2020.09.09 Python - OpenCV (0) 2020.09.09 Python - "python-for-android" apk (0) 2020.09.09