[学习记录]python中set,cls,字节,以及异步I/O

python真的是常学常新,每过一段时间都会有新的认识,都会积累新的知识。不过这些知识本身也就应该在对python有了一定了解的基础上再进行学习,快速接收的话理解能力还是跟不上的。

这里提供官方中文文档的链接,有空就可以多看看。

 

set(),可以将列表转换为集合,集合自然就包括了去重功能

 

cls,与self类似,在类中,self用来指代调用方法的实例,而cls则是指类本身,可以交给类方法来调用

 

字节,使用bytearray()进行转换,常用来网络上传输信息

----------------------------------------------------------------------------------------------

异步IO,这里使用官方的库asyncio

异步IO较复杂,这里就只介绍一点入门的情况。

asynico创造了一种协程的方式用来实现异步以及并发,与线程和进程有所不同。在代码层其实和多线程更类似一些,区别则是协程受python自身框架约束更多,而多线程更自由一些。

关于多线程可以看看我之前简单写的一点多线程快速使用方法

 

asynico收python版本影响,近几个版本改动较大,文档中有提到不同版本的区别,目前文档是基于python3.7来写的,同时对未来python3.10版本有了初步的规划。这些需要了解但不必费太多心思,这篇博客的目的只是为了能够快速了解如何使用asynico的基本功能

1. async/await 语法

协程通过async/await进行声明,简单的理解就是类似java中public   private  static这样的修饰前缀

2.可等待对象

一个可以在await语句中使用的对象就是可等待对象,大多数asyncio API都可以接收可等待对象,可等待对象一共有协程、任务、Future三种,协程通过 async  def定义一个函数作为协程,任务通过asyncio.create_task()来创建一个任务,而future通过loop.create_futere()进行创建,官方文档中不建议在应用层创建future

3.运行一个可等待对象

+asyncio.run(协程)

+asyncio.ensure_future(可等待对象)

4.并发运行

asyncio.gather(协程1,协程2,协程3,...)

5.事件循环

事件循环是asyncio应用的核心,是底层存在,通常我们应该使用asyncio.run这类高层函数,而不是直接对底层的loop进行操作。

获取一个loop可以使用asyncio.get_running_loop()

通过loop运行一个future可以使用loop.run_until_complete(future)

可以循环运行loop.run_forever(),相应使用loop.stop()终止循环,loop.close()可以关闭一个循环

转载于:https://www.cnblogs.com/trickofjoker/p/11085311.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值