E2083f1af05792114dceb42f51db1a27
Python-基础-常用术语对照表

版权声明:本文为博主原创文章,遵循CC BY-NC-ND 4.0
版权协议,转载请附上原文出处链接和本声明。


下面内容主要摘抄自python 官网,https://docs.python.org/3.7/glossary.html#glossary,部分内容有删减。

2to3

一个将 Python 2.x 代码转换为 Python 3.x 代码的工具,能够处理大部分通过解析源码并遍历解析树可检测到的不兼容问题。

2to3 包含在标准库中,模块名为 lib2to3;并提供一个独立入口点 Tools/scripts/2to3。参见 2to3 - 自动将 Python 2 代码转为 Python 3 代码。

因为官方将在2020年不再支持 Python 2.x, 在遇到没有Python 2.X 版本 的code 的时候,可以尝试使用这个工具将代码转化成Python 的版本。

abstract base class -- 抽象基类

抽象基类简称 ABC,是对 duck-typing 的补充,它提供了一种定义接口的新方式,相比之下其他技巧例如 hasattr() 显得过于笨拙或有微妙错误(例如使用 魔术方法)。ABC 引入了虚拟子类,这种类并非继承自其他类,但却仍能被 isinstance() 和 issubclass() 所认可;详见 abc 模块文档。Python 自带许多内置的 ABC 用于实现数据结构(在 collections.abc 模块中)、数字(在 numbers 模块中)、流(在 io 模块中)、导入查找器和加载器(在 importlib.abc 模块中)。你可以使用 abc 模块来创建自己的 ABC。

argument -- 参数

在调用函数时传给 function (或 method )的值。参数分为两种:

  • 关键字参数: 在函数调用中前面带有标识符(例如 name=)或者作为包含在前面带有 ** 的字典里的值传入。
    举例来说,3 和 5 在以下对 complex() 的调用中均属于关键字参数:
    Python complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})
  • 位置参数: 不属于关键字参数的参数。位置参数可出现于参数列表的开头以及/或者作为前面带有 * 的 iterable 里的元素被传入。
    举例来说,3 和 5 在以下调用中均属于位置参数:
    Python complex(3, 5) complex(*(3, 5))
    参数会被赋值给函数体中对应的局部变量。有关赋值规则参见 调用 一节。根据语法,任何表达式都可用来表示一个参数;最终算出的值会被赋给对应的局部变量。

另参见 parameter 术语表条目,常见问题中 参数与形参的区别 以及 PEP 362。

asynchronous context manager -- 异步上下文管理器

此种对象通过定义 __aenter__() 和 __aexit__() 方法来对 async with 语句中的环境进行控制。由 PEP 492 引入。

asynchronous generator -- 异步生成器

返回值为 asynchronous generator iterator 的函数。它与使用 async def 定义的协程函数很相似,不同之处在于它包含 yield 表达式以产生一系列可在 async for 循环中使用的值。

此术语通常是指异步生成器函数,但在某些情况下则可能是指 异步生成器迭代器。如果需要清楚表达具体含义,请使用全称以避免歧义。

一个异步生成器函数可能包含 await 表达式或者 async for 以及 async with 语句。

attribute -- 属性

关联到一个对象的值,可以使用点号表达式通过其名称来引用。例如,如果一个对象 o 具有一个属性 a,就可以用 o.a 来引用它。

BDFL

“终身仁慈独裁者”的英文缩写,即 Guido van Rossum,Python 的创造者。

binary file -- 二进制文件

file object 能够读写 字节类对象。二进制文件的例子包括以二进制模式('rb', 'wb' or 'rb+')打开的文件、sys.stdin.buffer、sys.stdout.buffer 以及 io.BytesIO 和 gzip.GzipFile 的实例。

另请参见 text file 了解能够读写 str 对象的文件对象。

bytes-like object -- 字节类对象

支持 缓冲协议 并且能导出 C-contiguous 缓冲的对象。这包括所有 bytes、bytearray 和 array.array 对象,以及许多普通 memoryview 对象。字节类对象可在多种二进制数据操作中使用;这些操作包括压缩、保存为二进制文件以及通过套接字发送等。

某些操作需要可变的二进制数据。这种对象在文档中常被称为“可读写字节类对象”。可变缓冲对象的例子包括 bytearray 以及 bytearray 的 memoryview。其他操作要求二进制数据存放于不可变对象 ("只读字节类对象");这种对象的例子包括 bytes 以及 bytes 对象的 memoryview。

bytecode -- 字节码

Python 源代码会被编译为字节码,即 CPython 解释器中表示 Python 程序的内部代码。字节码还会缓存在 .pyc 文件中,这样第二次执行同一文件时速度更快(可以免去将源码重新编译为字节码)。这种 "中间语言" 运行在根据字节码执行相应机器码的 virtual machine 之上。请注意不同 Python 虚拟机上的字节码不一定通用,也不一定能在不同 Python 版本上兼容。

class -- 类

用来创建用户定义对象的模板。类定义通常包含对该类的实例进行操作的方法定义。

class variable -- 类变量

在类中定义的变量,并且仅限在类的层级上修改 (而不是在类的实例中修改)。

coercion -- 强制类型转换

在包含两个相同类型参数的操作中,一种类型的实例隐式地转换为另一种类型。例如,int(3.15) 是将原浮点数转换为整型数 3,但在 3+4.5 中,参数的类型不一致(一个是 int, 一个是 float),两者必须转换为相同类型才能相加,否则将引发 TypeError。如果没有强制类型转换机制,程序员必须将所有可兼容参数归一化为相同类型,例如要写成 float(3)+4.5 而不是 3+4.5。

coroutine -- 协程
协程是子例程的更一般形式。子例程可以在某一点进入并在另一点退出。协程则可以在许多不同的点上进入、退出和恢复。它们可通过 async def 语句来实现。参见 PEP 492。

coroutine function -- 协程函数
返回一个 coroutine 对象的函数。协程函数可通过 async def 语句来定义,并可能包含 await、async for 和 async with 关键字。这些特性是由 PEP 492 引入的。

CPython

Python 编程语言的规范实现,在 python.org 上发布。CPython 一词用于在必要时将此实现与其他实现例如 JythonIronPython 相区别。

decorator -- 装饰器

返回值为另一个函数的函数,通常使用 @wrapper 语法形式来进行函数变换。 装饰器的常见例子包括 classmethod() 和 staticmethod()。

装饰器语法只是一种语法糖,以下两个函数定义在语义上完全等价:

def f(...):
    ...
f = staticmethod(f)

@staticmethod
def f(...):
    ...

同的样概念也适用于类,但通常较少这样使用。有关装饰器的详情可参见 函数定义 和 类定义 的文档。

dictionary -- 字典

一个关联数组,其中的任意键都映射到相应的值。键可以是任何具有 __hash__() 和 __eq__() 方法的对象。在 Perl 语言中称为 hash。

EAFP

“求原谅比求许可更容易”的英文缩写。这种 Python 常用代码编写风格会假定所需的键或属性存在,并在假定错误时捕获异常。这种简洁快速风格的特点就是大量运用 try 和 except 语句。于其相对的则是所谓 LBYL 风格,常见于 C 等许多其他语言。

expression -- 表达式

可以求出某个值的语法单元。 换句话说,一个表达式就是表达元素例如字面值、名称、属性访问、运算符或函数调用的汇总,它们最终都会返回一个值。 与许多其他语言不同,并非所有语言构件都是表达式。 还存在不能被用作表达式的 statement,例如 while。 赋值也是属于语句而非表达式。

extension module -- 扩展模块
以 C 或 C++ 编写的模块,使用 Python 的 C API 来与语言核心以及用户代码进行交互。

file object -- 文件对象

对外提供面向文件 API 以使用下层资源的对象(带有 read() 或 write() 这样的方法)。
根据其创建方式的不同,文件对象可以处理对真实磁盘文件,对其他类型存储,或是对通讯设备的访问(例如标准输入/输出、内存缓冲区、套接字、管道等等)。
文件对象也被称为 文件类对象

实际上共有三种类别的文件对象: 原始二进制文件, 缓冲二进制文件 以及 文本文件。它们的接口定义均在 io 模块中。
创建文件对象的规范方式是使用 open() 函数。

floor division -- 向下取整除法

向下舍入到最接近的整数的数学除法。向下取整除法的运算符是 // 。例如,表达式 11 // 4 的计算结果是 2 ,而与之相反的是浮点数的真正除法返回 2.75 。注意 (-11) // 4 会返回 -3 因为这是 -2.75 向下 舍入得到的结果。见 PEP 238 。

function -- 函数

可以向调用者返回某个值的一组语句。还可以向其传入零个或多个 参数 并在函数体执行中被使用。另见 parameter, method 和 函数定义 等节。

__future__

一种伪模块,可被程序员用来启用与当前解释器不兼容的新语言特性。

通过导入 __future__ 模块并对其中的变量求值,你可以查看新特性何时首次加入语言以及何时成为默认:

>>>
>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)

garbage collection -- 垃圾回收

释放不再被使用的内存空间的过程。
Python 是通过引用计数和一个能够检测和打破循环引用的循环垃圾回收器来执行垃圾回收的。
可以使用 gc 模块来控制垃圾回收器。

global interpreter lock -- 全局解释器锁

CPython 解释器所采用的一种机制,它确保同一时刻只有一个线程在执行 Python bytecode。此机制通过设置对象模型(包括 dict 等重要内置类型)针对并发访问的隐式安全简化了 CPython 实现。给整个解释器加锁使得解释器多线程运行更方便,其代价则是牺牲了在多处理器上的并行性。

top Created with Sketch.