이것은 生成器입니다. 生成器의 초점은 yield입니다. 여기서 block는 생성자가 매번 생성하는 값입니다. 迭代器 예를 들어 foods의 banana 요소이고 생성기의 주요 기능은 把大内存占用数据分次写入内存입니다. 이 방법의 장점은 모든 데이터를 한 번에 프로그램으로 읽어올 필요가 없다는 것입니다. 많은 양의 메모리를 차지하므로 사용량에 영향을 주지 않고 사용할 수 있습니다. 이 경우 메모리 누수를 방지하여 프로그램 사용자에게 더 나은 경험을 제공하고 코드를 더욱 우아하게 만듭니다(ge).
사용 시나리오는 실제로 위에서 언급한 바 있습니다. 더 구체적인 내용을 알고 싶으시면 저를 추천해주세요. :)
파이썬에서는 위의 요구 사항을 충족하기 위해 반복자를 for 문에 배치하고 객체에 반복자 기능을 추가할 수 있습니다. 다음은 일반적으로 대용량 파일을 열 때 메모리 매핑된 파일을 사용해야 하는 예입니다. , 그러나 표준 mmap 객체는 반복을 지원하지 않으므로 다음 코드를 실행할 수 없습니다.
으아악
이 효과를 얻으려면 반복자를 사용해야 합니다. 아래의 iter 및 next 함수를 참조하세요.
으아악
생성기와 관련하여 Yield 또는 생성기 표현식을 사용해야 합니다.
생성기의 적용 시나리오는 주로 지연 평가 및 데이터 생성에 있습니다. 특정 논리에서는 0~300만 개의 난수가 필요하다고 가정합니다.
迭代器
과生成器
는 개념적으로 중복되지 않는 개념입니다. 즉, 유사성이 없습니다.간략하게 설명하겠습니다.
Iterator는 실제로 목록, 튜플 등
迭代
에 사용할 수 있는容器
입니다.생성기, 여기서
生成
는迭代器
을 생성할 수 있다는 의미입니다.데모는 다음과 같습니다.
으아악여기
으아악foods
는 반복자입니다.이것은
生成器
입니다.生成器
의 초점은yield
입니다. 여기서block
는 생성자가 매번 생성하는 값입니다.迭代器
예를 들어foods
의banana
요소이고 생성기의 주요 기능은把大内存占用数据分次写入内存
입니다. 이 방법의 장점은 모든 데이터를 한 번에 프로그램으로 읽어올 필요가 없다는 것입니다. 많은 양의 메모리를 차지하므로 사용량에 영향을 주지 않고 사용할 수 있습니다. 이 경우 메모리 누수를 방지하여 프로그램 사용자에게 더 나은 경험을 제공하고 코드를 더욱 우아하게 만듭니다(ge).사용 시나리오는 실제로 위에서 언급한 바 있습니다. 더 구체적인 내용을 알고 싶으시면 저를 추천해주세요. :)
파이썬에서는 위의 요구 사항을 충족하기 위해 반복자를 for 문에 배치하고 객체에 반복자 기능을 추가할 수 있습니다. 다음은 일반적으로 대용량 파일을 열 때 메모리 매핑된 파일을 사용해야 하는 예입니다. , 그러나 표준 mmap 객체는 반복을 지원하지 않으므로 다음 코드를 실행할 수 없습니다.
으아악이 효과를 얻으려면 반복자를 사용해야 합니다. 아래의 iter 및 next 함수를 참조하세요.
으아악생성기와 관련하여 Yield 또는 생성기 표현식을 사용해야 합니다.
생성기의 적용 시나리오는 주로 지연 평가 및 데이터 생성에 있습니다. 특정 논리에서는 0~300만 개의 난수가 필요하다고 가정합니다.
한 번에 3백만 개의 난수를 생성한 다음 목록이나 어딘가에 배치하세요.
필요할 때마다 임시 생성 (생성기 사용)
위 코드에서는 파일의 줄 수에 따라 임시로 몇 개의 난수가 생성되는지;