카테고리 없음

제네레이터와 yield

bitpoint 2024. 3. 3. 11:26

enumerater를 함수화해서 메모리에 한개씩 담으면서 병렬적으로 실행되는 구조다

가독성이 떨어지지만 속도와 메모리 관리 측면에서 조으다.

def yield_test():
    print('처음에만 실행될까?')
    for i in range(5):
        yield i
        print(i,'번째 호출!')

print(type(yield_test())) # <class 'generator'>

#CaseA. __next__() 함수를 통해 출력
t = yield_test()
print(t.__next__()) # 0
print(t.__next__()) # 0 번째 호출! 1
print(t.__next__()) # 1 번째 호출! 2
print(t.__next__()) # 2 번째 호출! 3
print(t.__next__()) # 3 번째 호출! 4