python实习总结(yeild,async,azwait和协程)

yizhihongxing

Python实习总结

本文将介绍在Python实习中所了解到的yield、async、await和协程的知识点以及如何使用它们。

yield和生成器

yield是一种特殊的关键字,它可以让函数暂停执行,并将函数的当前状态保持下来。yield常用于生成器中,生成器可以用来迭代一组数据,而不用事先生成整组数据,这样可以节省内存空间。以下是yield的示例代码:

def generator():
    for i in range(5):
        yield i

g = generator()
for i in g:
    print(i)

上述代码先定义了一个生成器函数generator(),在其中使用yield语句,然后定义一个生成器对象g,并用for循环来遍历这个生成器对象。最终输出的结果是0、1、2、3、4。

async和await

async和await是Python3.5版本之后添加的关键字,用于异步编程。async用于定义异步函数,而await则是等待异步函数执行完成。下面是使用async和await的示例代码:

import asyncio

async def coroutine():
    print('Hello')
    await asyncio.sleep(1)
    print('World')

loop = asyncio.get_event_loop()
loop.run_until_complete(coroutine())

上述代码定义了一个异步函数coroutine(),这个函数的执行过程被打断了,等待1秒钟后,再继续执行。在main函数中,首先获取了一个事件循环对象loop,然后使用loop.run_until_complete()方法来运行coroutine()函数。

asyncio和协程

asyncio是Python3.4版本之后添加的库,用于实现异步IO编程。在Python中,协程是一种轻量级的线程,可以实现在同一线程中并发执行多个任务,从而提高程序的效率。以下是使用asyncio和协程的示例代码:

import asyncio

async def factorize(number):
    for i in range(1, number+1):
        if number%i == 0:
            await asyncio.sleep(1)
            print('{} * {}'.format(i, number//i))
            await asyncio.sleep(1)

async def main():
    await asyncio.gather(factorize(100), factorize(200), factorize(300))

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

上述代码定义了一个协程函数factorize(),这个函数模拟对数字进行质因数分解的过程。在主函数main()中,使用asyncio.gather()方法来同时运行三个factorize()函数。最终的输出结果为:1 * 100、2 * 50、4 * 25、5 * 20、10 * 10、1 * 200、2 * 100、4 * 50、5 * 40、8 * 25、10 * 20、20 * 10、1 * 300、2 * 150、3 * 100、4 * 75、5 * 60、6 * 50、10 * 30、12 * 25、15 * 20、30 * 10。

以上就是对Python实习中所了解到的yield、async、await和协程的介绍和示例说明。希望对大家学习Python异步编程有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实习总结(yeild,async,azwait和协程) - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python脚本监控docker容器

    Python脚本可以通过Docker API来进行容器监控。以下是完整的攻略: 第一步:安装Docker SDK for Python Docker SDK for Python是Python与Docker通信的SDK。可以使用pip来安装它: pip install docker 第二步:连接到Docker守护进程 在使用Python SDK与Docker…

    python 2023年6月3日
    00
  • Python + Requests + Unittest接口自动化测试实例分析

    Python+Requests+Unittest接口自动化测试实例分析 在进行接口测试时,我们可以使用Python的unittest和requests库来实现自动化。unittest是Python自带的测试框架,可以方便地编写和运行测试用例。requests库是一个Python库,用于发送HTTP请求。本文将介绍如何使用Python+Requests+Uni…

    python 2023年5月15日
    00
  • python编写分类决策树的代码

    Python编写分类决策树的代码 分类决策树是一种常用的机器学习算法,它可以用于分类和回归问题。在本文中,我们将介绍如何使用Python编写分类决策树的代码,并提供两个示例说明。 决策树算法 决策树算法是一种基于树形结构的机器学习算法,它可以用于分类和回归问题。决策树算法将数据集分成不同的子集,每个子集具有相似的特征。在分类问题中,决策树算法将数据集分成不同…

    python 2023年5月14日
    00
  • 详解Python PIL Image.draft()方法

    Python PIL库中的Image.draft()方法用于将图像转换为“草稿”模式,并返回该图像。“草稿”格式的图像比原始格式的图像更快,但图像质量较差。该方法可以为图像的处理提供加速,特别是在处理大量图像时。下面是更详细的完整攻略: 什么是 Python PIL Image.draft()方法? Image.draft()方法是Python PIL库中的…

    python-answer 2023年3月25日
    00
  • 浅析Python 实现一个自动化翻译和替换的工具

    下面我将详细讲解如何实现一个自动化翻译和替换的工具。 具体步骤 步骤1:安装必要的库 在Python中实现一个自动化翻译和替换的工具需要用到以下库: googletrans,用于进行翻译; docx2txt,用于将Word文档转换为文本格式。 可以通过以下命令来安装这两个库: pip install googletrans pip install docx2…

    python 2023年5月19日
    00
  • Python socket服务常用操作代码实例

    为了详细讲解 “Python Socket 服务常用操作代码实例”,我们将会分以下几个方面来进行讲解: 什么是 Socket? Python 中 Socket 操作的常用流程 Python 中 Socket 常用操作的代码实例 什么是 Socket? Socket(套接字)是指操作系统提供的用于网络通信的一种机制。通过 Socket,整个网络通信过程变得更加…

    python 2023年6月3日
    00
  • Python数学建模PuLP库线性规划入门示例详解

    以下是关于“Python数学建模PuLP库线性规划入门示例详解”的完整攻略: 简介 PuLP是一个Python库,用于线性规划问题的建模和求解。本教程将介绍如何使用PuLP库解决线性规划问题。 步骤 1. 安装PuLP 首先,我们需要安装PuLP库。可以使用以下命令在Python中安装PuLP: !pip install pulp 2. 导入库 接下来,我们…

    python 2023年5月14日
    00
  • python连接mysql有哪些方法

    Python连接MySQL可以采用以下几种方法: 1. 使用Python标准库中的mysql.connector模块 mysql.connector模块是Python自带的一个连接MySQL的模块,可以通过pip install mysql-connector-python安装。该模块使用MySQL的官方mysql-connector-c库连接MySQL,支…

    python 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部