Python Lambda에서 대기 사용
비동기 프로그래밍은 멀티스레딩이나 멀티프로세싱이 아닙니다. 대신, 잠재적으로 오래 실행되는 작업을 실행하고 완료를 기다리는 대신 해당 작업이 계속 실행되는 동안 프로그램이 다른 작업에 응답할 수 있는 동시 프로그래밍입니다.
비동기 프로그래밍을 사용하면 HTTP 요청 작업 또는 사용자 선택에 많은 시간이 걸릴 수 있으므로 이러한 작업이 계속 수행되는 동안 다른 작업을 실행하도록 허용하는 것이 현명합니다.
Python에서 비동기 프로그래밍을 달성하기 위해 함수와 함께 async/await
기능을 사용할 수 있지만 우리는 lambda
함수를 사용합니다. 이 기사에서는 Python 람다 함수에서 await
를 사용할 가능성에 대해 설명합니다.
Python Lamda에 async/await lambda
가 없음
Python에서 비동기 프로그래밍을 수행하려면 async/await
구문을 사용하여 동시 프로그래밍을 허용하는 asyncio
라는 기본 제공 고급 패키지가 필요합니다.
비동기 작업을 생성하려면 async
및 await
키워드를 사용할 수 있습니다.
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 개발자는 lambda
에 async
구문을 추가하는 것을 정당화할 중요한 사용 사례가 없음이 있다고 말했습니다.
또한 lambda
의 명명은 lambda
함수의 적절한 사용이 아닙니다. 따라서 lambda
기능과 함께 기능적으로 사용하기 어려울 것입니다. 또한 lambda
함수를 통해 async
함수를 전달하면 동기 함수 내에서 실행됩니다.
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