2017-02-20 6 views
1

aiohttp 라이브러리의 documentation 상태 :aiohttp에서 명시적인 루프 매개 변수를 사용하는 이유는 무엇입니까?

루프 - 처리 HTTP 요청에 사용 이벤트 루프. param이 None 인 경우 asyncio.get_event_loop()이 기본 이벤트 루프를 가져 오는 데 사용되지만 명시 적 루프를 사방에 사용하는 것이 좋습니다. (선택 사항)

loopClientSession에 물체를 통과 할 수있다, 등 제공 "모듈 수준"기능에

내가 당신에게 설명 할 수있는, 전체 비동기 프로그래밍의 개념에 새로운 오전 나를 왜 명시 적으로 사용하는 루프를 제공하는 것이 좋습니다 개체/기능을 그냥 기본값을 사용하게하는 대신?

마음에 오는 한 가지 사용법은 테스트를 더 쉽게 만들고, 내 자신의 루프 모의를 제공 할 수 있기 때문에 성능상의 이유가 있습니까?

답변

1

그 이유는 성능이 아니라 가독성입니다.

루프를 명시 적으로 지정하면 개발자가 루프 인스턴스의 출처를 쉽게 알 수 있으므로 사용자 지정 루프를 프로그램에 삽입해야하는 경우 루프를 쉽게 변경할 수 있습니다.

또 다른 인기있는 옵션은 이 아니며은 루프 매개 변수를 지정하지 않으므로 asyncio.get_event_loop()은 항상 루프 인스턴스를 가져 오기 위해 호출됩니다.

(예 : 다른 스레드에서 사용할 수 있지만 일반적으로 사용되지는 않습니다.)