우리가 "파이썬"이라고 하면 리스트나 딕셔너리 컴프리헨션 같은 컴프리헨션이 파이썬의 특징입니다.
이것은 다른 많은 언어와 달리 루프를 수행하는 한 가지 방법입니다.
Asyncio를 사용하면 비동기식 이해력을 사용할 수 있습니다.
비동기 이해를 사용하여 "async for" 표현식을 통해 비동기 생성기와 비동기 반복기를 반복할 수 있습니다.
비동기 파생은 고전 파생의 비동기 버전입니다. Asyncio는 두 가지 유형의 비동기 이해를 지원합니다. 즉, "async for" 이해와 "await" 이해입니다.
각각을 살펴보기 전에 먼저 고전 파생을 검토해 보겠습니다.
Comprehensions을 사용하면 목록, 사전, 집합 등의 데이터 컬렉션을 간결하게 만들 수 있습니다. 목록 이해를 사용하면 새 목록 표현식 내의 for 표현식에서 목록을 만들 수 있습니다.
... # create a list using a list comprehension result = [a*2 for a in range(100)]
는 사전과 세트를 생성하는 이해력도 지원합니다.
... # create a dict using a comprehension result = {a:i for a,i in zip(['a','b','c'],range(3))} # create a set using a comprehension result = {a for a in [1, 2, 3, 2, 3, 1, 5, 4]}
비동기 컴프리헨션을 사용하면 비동기 반복 가능 객체와 함께 "async for" 표현식을 사용하여 목록, 세트 또는 사전을 생성할 수 있습니다.
... # async list comprehension with an async iterator result = [a async for a in aiterable]
필요에 따라 코루틴이나 작업을 생성 및 예약하고 결과를 목록에 넣습니다.
"async for" 표현식은 코루틴과 작업에서만 사용할 수 있다는 점을 기억하세요.
또한 비동기 반복자는 대기 가능한 객체를 생성하는 반복자라는 점을 기억하세요.
"async for" 표현식을 사용하면 호출자가 대기 중인 개체의 비동기 반복자를 반복하고 각 개체에서 결과를 검색할 수 있습니다.
내부적으로 async for 루프는 필요에 따라 대기 가능한 각 디스패치 코루틴을 자동으로 구문 분석하거나 기다립니다.
비동기 생성기는 비동기 반복기 메서드를 자동으로 구현하며 비동기 파생에도 사용할 수 있습니다.
... # async list comprehension with an async generator result = [a async for a in agenerator]
"Wait" 표현은 List, Set, Dictionary Comprehension에서도 사용할 수 있는데 이를 Wait Comprehension이라고 합니다.
비동기 컴프리헨션과 마찬가지로 비동기 코루틴이나 작업에서만 사용할 수 있습니다.
이를 통해 대기 가능한 객체의 시퀀스를 일시 중지하고 대기하여 목록과 같은 데이터 구조를 생성할 수 있습니다.
... # await list compression with a collection of awaitables results = [await a for a in awaitables]
이렇게 하면 대기 가능한 각 개체를 차례로 기다리면서 결과 목록이 생성됩니다.
현재 코루틴은 대기 가능한 객체를 순차적으로 실행하기 위해 일시 중지됩니다. 이는 asyncio.gather()를 사용하여 동시에 실행하는 것과 다르며 속도가 느려질 수 있습니다.
위 내용은 Python 비동기 파생을 적용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!