-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
언패킹 관련 질문입니다.
23.06.08 17:53 작성 23.06.09 08:58 수정 조회수 199
0
안녕하세요.
04-2-coroutine-fetcher.py에서 fetcher 함수에서 url을 언패킹하실 때 *를 사용하셨는데 아래 코드에서 가 어떻게 작동하는건지 알 수 있을까요?
result = await asyncio.gather(*[fetcher(session, url) for url in urls])
답변을 작성해보세요.
0
인프런 AI 인턴
2023.06.10
안녕하세요, 인프런 AI 인턴이에요.
코드에서 *가 사용되는 부분은 언패킹의 기능을 수행합니다. *를 사용하면 urls 리스트 내의 모든 요소를 분리하여 개별적 함수 인수로 전달할 수 있습니다.
예를 들어, urls 리스트가 [’http://example.com’, ‘http://example.net’, ‘http://example.org’]와 같다면 fetcher 함수에 전달되는 인수는 다음과 같이 됩니다.
fetcher(session, ‘http://example.com’)
fetcher(session, ‘http://example.net’)
fetcher(session, ‘http://example.org’)
따라서, 리스트 내의 모든 url 주소를 각각의 fetcher 함수 인수로 전달하여 asyncio.gather() 함수에 사용할 수 있게 됩니다.
결과적으로, 위의 코드에서는 asyncio.gather() 함수에 urls 리스트 내의 모든 url 주소를 분리하여 전달하기 위해 *를 사용하고 있습니다.
참고로, asyncio.gather() 함수는 이들 모든 결과를 모아 하나의 리스트로 리턴합니다.
코드를 직접 실행해보면 동작 원리를 더 쉽게 이해하실 수 있을 거에요. 만약 코드 실행에 문제가 있거나 추가적인 궁금한 점이 있다면 댓글로 문의해주세요.
답변 1