Python Lambda에서 대기 사용

Olorunfemi Akinlua 2023년6월21일
Python Lambda에서 대기 사용

비동기 프로그래밍은 멀티스레딩이나 멀티프로세싱이 아닙니다. 대신, 잠재적으로 오래 실행되는 작업을 실행하고 완료를 기다리는 대신 해당 작업이 계속 실행되는 동안 프로그램이 다른 작업에 응답할 수 있는 동시 프로그래밍입니다.

비동기 프로그래밍을 사용하면 HTTP 요청 작업 또는 사용자 선택에 많은 시간이 걸릴 수 있으므로 이러한 작업이 계속 수행되는 동안 다른 작업을 실행하도록 허용하는 것이 현명합니다.

Python에서 비동기 프로그래밍을 달성하기 위해 함수와 함께 async/await 기능을 사용할 수 있지만 우리는 lambda 함수를 사용합니다. 이 기사에서는 Python 람다 함수에서 await를 사용할 가능성에 대해 설명합니다.

Python Lamda에 async/await lambda가 없음

Python에서 비동기 프로그래밍을 수행하려면 async/await 구문을 사용하여 동시 프로그래밍을 허용하는 asyncio라는 기본 제공 고급 패키지가 필요합니다.

비동기 작업을 생성하려면 asyncawait 키워드를 사용할 수 있습니다.

import asyncio


async def main():
    print("Action One")
    await asyncio.sleep(1)
    print("Action Two")


asyncio.run(main())

출력:

Action One
Action Two

async 키워드를 main() 함수에 적용하고 await 키워드를 asyncio.sleep() 문에 적용했습니다. 그러나 이를 lambda를 통해 익명 함수에 어떻게 적용합니까? 익명 또는 lambda 함수는 이름 없이 정의되며 이를 달성하기 위해 lambda 키워드를 사용합니다.

목록에서 3으로 나눌 수 없는 숫자를 제거하고 싶다고 가정해 보겠습니다. 다른 함수를 사용하는 filter() 메서드(고차 함수)를 사용할 수 있습니다.

따라서 다시 사용하지 않을 수도 있는 함수 바인딩을 정의하는 대신 lambda 키워드를 사용하여 익명 함수를 사용할 수 있습니다.

myNums = [1, 2, 3, 4, 5, 6, 7]

myNums = list(filter(lambda x: x % 3 == 0, myNums))

print(myNums)

출력:

[3, 6]

그러나 lambda 기능에 비동기 기능을 추가하는 방법이 있습니까? 간단한 대답은 아니요입니다.

Python 개발자는 lambdaasync 구문을 추가하는 것을 정당화할 중요한 사용 사례가 없음이 있다고 말했습니다.

또한 lambda의 명명은 lambda 함수의 적절한 사용이 아닙니다. 따라서 lambda 기능과 함께 기능적으로 사용하기 어려울 것입니다. 또한 lambda 함수를 통해 async 함수를 전달하면 동기 함수 내에서 실행됩니다.

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

관련 문장 - Python Lambda