Python术语大全

fansichao 2021-10-23 16:16:35
Categories: Tags:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
值(value):就是在程序中,我们操作数据的基本单位,举例:”www.iplaypy.com”
类型(type):python type,值在 Python 中的类别,常见的类型我们在 Python 基础数据类型那篇文章中有详细介绍。
整型(integer):又叫做整数类型,用来表达整数的数据类型。
浮点数(floating point): 用来表示带小数部分的数。
字符串(string):用来表示一串字符的类型。
变量(variable):引用一个值,这个值的名称。
语句(statement):表示一个命令或行动的一段代码,我们见过赋值语句和 print 输出语句。
赋值(assignment):就是将一个值,赋值给一个变量。
关键字(keyword):这个关键词,这不是我们搜索引擎优化(SEO)中介绍的概念,它是 Python 内部保留的词,变量名一定不要使用系统关键字。
操作符(operator):用来表示简单的运算的特殊符号,像:加法、乘法和字符器拼接等。
python 注释(comment):代码中可以附加一些我们的注解信息,用来帮助我们调试程序时使用,也可以放入帮助文档信息,这是基础知识之中的基础。

生成器:在 Python 中,这种一边循环一边计算的机制,称为生成器:generator。
可迭代对象:可以直接作用于 for 循环的对象统称为可迭代对象:Iterable。
迭代器:可以被 next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
集合数据类型如 list、dict、str 等是 Iterable 但不是 Iterator,不过可以通过 iter()函数获得一个 Iterator 对象。
软件开发中的一个原则“开放-封闭”原则;
封闭:已实现的功能代码块不应该被修改
开放:对现有功能的扩展开放
高阶函数,就是把一个函数当做一个参数传给另外一个函数
匿名函数 lambda 与正常函数的区别是什么? 最直接的区别是,正常函数定义时需要写名字,但 lambda 不需要。
模块,用一砣代码实现了某个功能的代码集合。
json 模块,用于字符串 和 python 数据类型间进行转换;Json 模块提供了四个功能:dumps、dump、loads、load
pickle 模块,用于 python 特有的类型 和 python 的数据类型间进行转换;pickle 模块提供了四个功能:dumps、dump、loads、load
xml 是实现不同语言或程序之间进行数据交换的协议,跟 json 差不多,但 json 使用起来更简单,不过,古时候,在 json 还没诞生的黑暗年代,大家只能选择用 xml 呀
散列消息鉴别码,简称 HMAC,是一种基于消息鉴别码 MAC(Message Authentication Code)的鉴别机制。使用 HMAC 时,消息通讯的双方,通过验证消息中加入的鉴别密钥 K 来鉴别消息的真伪;

参考资源

函数式编程

异步编程

1 什么是异步编程
通过学习相关概念,我们逐步解释异步编程是什么。

1.1 阻塞
程序未得到所需计算资源时被挂起的状态。
程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的。
常见的阻塞形式有:网络 I/O 阻塞、磁盘 I/O 阻塞、用户输入阻塞等。
阻塞是无处不在的,包括 CPU 切换上下文时,所有的进程都无法真正干事情,它们也会被阻塞。(如果是多核 CPU 则正在执行上下文切换操作的核不可被利用。)

1.2 非阻塞
程序在等待某操作过程中,自身不被阻塞,可以继续运行干别的事情,则称该程序在该操作上是非阻塞的。
非阻塞并不是在任何程序级别、任何情况下都可以存在的。
仅当程序封装的级别可以囊括独立的子程序单元时,它才可能存在非阻塞状态。
非阻塞的存在是因为阻塞存在,正因为某个操作阻塞导致的耗时与效率低下,我们才要把它变成非阻塞的。

1.3 同步
不同程序单元为了完成某个任务,在执行过程中需靠某种通信方式以协调一致,称这些程序单元是同步执行的。
例如购物系统中更新商品库存,需要用“行锁”作为通信信号,让不同的更新请求强制排队顺序执行,那更新库存的操作是同步的。
简言之,同步意味着有序。
1.4 异步
为完成某个任务,不同程序单元之间过程中无需通信协调,也能完成任务的方式。
不相关的程序单元之间可以是异步的。
例如,爬虫下载网页。调度程序调用下载程序后,即可调度其他任务,而无需与该下载任务保持通信以协调行为。不同网页的下载、保存等操作都是无关的,也无需相互通知协调。这些异步操作的完成时刻并不确定。
简言之,异步意味着无序。
上文提到的“通信方式”通常是指异步和并发编程提供的同步原语,如信号量、锁、同步队列等等。我们需知道,虽然这些通信方式是为了让多个程序在一定条件下同步执行,但正因为是异步的存在,才需要这些通信方式。如果所有程序都是按序执行,其本身就是同步的,又何需这些同步信号呢?

1.5 并发
并发描述的是程序的组织结构。指程序要被设计成多个可独立执行的子任务。
以利用有限的计算机资源使多个任务可以被实时或近实时执行为目的。
1.6 并行
并行描述的是程序的执行状态。指多个任务同时被执行。
以利用富余计算资源(多核 CPU)加速完成多个任务为目的。
并发提供了一种程序组织结构方式,让问题的解决方案可以并行执行,但并行执行不是必须的。

1.7 概念总结
并行是为了利用多核加速多任务完成的进度
并发是为了让独立的子任务都有机会被尽快执行,但不一定能加速整体进度
非阻塞是为了提高程序整体执行效率
异步是高效地组织非阻塞任务的方式
要支持并发,必须拆分为多任务,不同任务相对而言才有阻塞/非阻塞、同步/异步。所以,并发、异步、非阻塞三个词总是如影随形。

1.8 异步编程
以进程、线程、协程、函数/方法作为执行任务程序的基本单位,结合回调、事件循环、信号量等机制,以提高程序整体执行效率和并发能力的编程方式。
如果在某程序的运行时,能根据已经执行的指令准确判断它接下来要进行哪个具体操作,那它是同步程序,反之则为异步程序。(无序与有序的区别)

同步/异步、阻塞/非阻塞并非水火不容,要看讨论的程序所处的封装级别。例如购物程序在处理多个用户的浏览请求可以是异步的,而更新库存时必须是同步的。

作者:SeanCheney
链接:https://www.jianshu.com/p/fe146f9781d2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。