1.Python中:号的用
names: t.Iterable[str None] = (None.)
这行代码是Python中的类型注解(TypeAnnotation)的一种写法在这行代码中,names 是一个变量,它被注解为类型 Iterable[strNone] 。这意味着 names 是一个可迭代对象,其中的元素类型是 str或 None 。
Iterable[str None] 这个类型注解使用了一种特殊的写法,表示na可以是一个由 str 和 None 组成的可迭代对象。方括号内的messtr None 表示 str 和 None 之间是一个联合类型 (Union Type)关系,即 names 中的元素可以是 str ,也可以是 None 。最后的 = (None,) 表示 names 被赋予了一个初始值 (None,) ,即一个包含单个元素 None 的元组。
通过类型注解,可以增加代码的可读性和可维护性,在静态类型检查工具(如mypy)中可以进行类型检查,帮助发现代码中的潜在问题。
2.异步编译理解
异步编程:可以看为类似县城但不涉及系统调度,即异步程序可以并发地处理问题当异步程序的上下文在内部不是通过系统调度程序切换。
3.什么是协程
协程又称为微线程,在一个线程中执行,执行函数时可以随时终端,由程序自身控制,执行效率极高,与多线程比较,没有切换线程的开销和多线程锁机制。
4.asyncio异步协程
asyncio即Asynchronous I/O是python一个用来处理并发事件的包,是很多python异步架构的基础,用于处理高并发网络请求方面的问题
# 普通函数
def function():
return 1
# 由async做前缀的普通函数变成了异步函数
async def asynchronous():
return 1
# 而异步函数不同于普通函数不可能被直接调用
async def asynchronous():
return 1
print(asynchronous())
5.await关键词
await是一个只能在协程函数中使用的关键词,用于在遇到IO操作时悬挂当前协程。在悬挂当前协程的过程中,事件循环可以执行其他协程,在当前协程IO处理完成后,可以重新切换执行后的代码
6.不定长参数
*args 接受单个出现的参数,接收后存为元组
**kwargs 接收以键值对形式出现的参数,接收后存入一个字典