coroutine function
In Python, a coroutine function is a function that you define with the async def syntax. These functions return coroutine objects that can pause their execution and yield control back to the event loop, allowing other tasks to run.
Coroutine functions are useful when writing asynchronous programs that perform non-blocking input/output (I/O) operations, such as web requests or database queries.
Coroutines are part of Python’s asynchronous programming capabilities, added to the language in Python 3.5 via the async and await keywords. The asyncio library provides a built-in event loop for running coroutines, though other frameworks like Trio and AnyIO also support them.
Example
Here’s an example of how to define and use a coroutine function:
>>> import asyncio
>>> async def greet(name):
... print(f"Hello, {name}!")
... await asyncio.sleep(1)
... print(f"How are you?")
...
>>> async def main():
... await greet("Pythonista")
...
>>> asyncio.run(main())
Hello, Pythonista!
How are you?
In this example, greet() is a coroutine function. You call it from another coroutine, main(), using the await keyword. The asyncio.run() function executes the main() coroutine, starting the event loop.
Related Resources
Tutorial
Async Programming in Python: From Generators to asyncio
Learn how Python async programming works. Write async functions with async and await, and run slow I/O operations concurrently with asyncio.
For additional information on related topics, take a look at the following resources:
- Python's asyncio: A Hands-On Walkthrough (Tutorial)
- Asynchronous Iterators and Iterables in Python (Tutorial)
- Hands-On Python 3 Concurrency With the asyncio Module (Course)
- Async Programming in Python: From Generators to asyncio (Quiz)
- Python's asyncio: A Hands-On Walkthrough (Quiz)
- Exploring Asynchronous Iterators and Iterables (Course)
- Asynchronous Iterators and Iterables in Python (Quiz)