python 事件驱动实例
时间: 2024-10-26 12:03:13 浏览: 15
python 标注库实例
在Python中,事件驱动编程是一种常见的控制流程模型,它强调程序的执行基于外部事件的发生,而不是按照预定的顺序逐一执行。这种模式常用于处理I/O密集型任务,如网络通信、用户界面交互等,典型例子是使用`asyncio`库。
例如,在网络爬虫中,我们可以创建一个事件循环来监听HTTP请求的结果。当一个新的请求完成时,`asyncio`会触发一个事件,这时我们编写好的回调函数会被调用,处理响应数据。这里的一个简单示例:
```python
import asyncio
class MyWebClient:
def __init__(self):
self.tasks = []
async def fetch(self, url):
# 模拟异步网络请求
await asyncio.sleep(1)
print(f"Finished fetching {url}")
async def start(self):
for _ in range(5):
task = asyncio.create_task(self.fetch(url))
self.tasks.append(task)
await asyncio.gather(*self.tasks)
client = MyWebClient()
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(client.start())
finally:
loop.close()
```
在这个例子中,`start()`方法启动了五个并发的网络请求,而事件循环则负责管理它们。当每个请求完成后,它会触发`fetch`方法的回调,执行后续处理。
阅读全文