>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81
generic function -- 泛型函数为不同的类型实现相同操作的多个函数所组成的函数。在调用时会由调度算法来确定应该使用哪个实现。
另请参见 single dispatch 术语表条目、functools.singledispatch()
装饰器以及 PEP 443。
generic type -- 泛型可参数化的 type;通常为 list
或 dict
这样的 容器类。用于 类型提示 和 注解。
更多细节参见 泛型别名类型、PEP 483、PEP 484、PEP 585 和 typing
模块。
GIL参见 global interpreter lock。
global interpreter lock -- 全局解释器锁CPython 解释器所采用的一种机制,它确保同一时刻只有一个线程在执行 Python bytecode。此机制通过设置对象模型(包括 dict
等重要内置类型)针对并发访问的隐式安全简化了 CPython 实现。给整个解释器加锁使得解释器多线程运行更方便,其代价则是牺牲了在多处理器上的并行性。
不过,某些标准库或第三方库的扩展模块被设计为在执行计算密集型任务如压缩或哈希时释放 GIL。 此外,在执行 I/O 操作时也总是会释放 GIL。
以往的创建实现 “线程自由” 的解释器(能以更细的粒度锁定共享数据)的努力并不成功,因为在常见的单处理器中性能会受到影响。我们认为,克服性能问题会使实现过程变得更加复杂,从而增加维护成本。
hash-based pyc -- 基于哈希的 pyc使用对应源文件的哈希值而非最后修改时间来确定其有效性的字节码缓存文件。 参见 已缓存字节码的失效。
hashable -- 可哈希一个对象如果具有在其生命期内绝不改变的哈希值(它需要有 __hash__()
方法),并可以同其他对象进行比较(它需要有 __eq__()
方法)就被称为 可哈希 对象。 可哈希对象必须具有相同的哈希值比较结果才会相等。
可哈希性使得对象能够作为字典键或集合成员使用,因为这些数据结构要在内部使用哈希值。
大多数 Python 中的不可变内置对象都是可哈希的;可变容器(例如列表或字典)都不可哈希;不可变容器(例如元组和 frozenset)仅当它们的元素均为可哈希时才是可哈希的。 用户定义类的实例对象默认是可哈希的。 它们在比较时一定不相同(除非是与自己比较),它们的哈希值的生成是基于它们的 id()
。
IDLEPython 的集成开发与学习环境。 IDLE 是 Python 标准发行版附带的基本编辑器和解释器环境。
immutable -- 不可变对象具有固定值的对象。不可变对象包括数字、字符串和元组。这样的对象不能被改变。如果必须存储一个不同的值,则必须创建新的对象。它们在需要常量哈希值的地方起着重要作用,例如作为字典中的键。
import path -- 导入路径由多个位置(或 路径条目)组成的列表,会被模块的 path based finder 用来查找导入目标。在导入时,此位置列表通常来自 sys.path
,但对次级包来说也可能来自上级包的 __path__
属性。
importing -- 导入令一个模块中的 Python 代码能为另一个模块中的 Python 代码所使用的过程。
importer -- 导入器查找并加载模块的对象;此对象既属于 finder 又属于 loader。
interactive -- 交互Python 有一个交互式解释器,这意味着你可以在解释器的提示符下输入语句和表达式,然后立即执行并查看结果。 只需在没有参数的情况下启动 python
(如果有的话,还可以从计算机的主菜单中直接选择它来启动) 。这是测试新想法或检查模块和软件包的一种非常有效的方式 (别忘了试试``help(x)``) 。
interpreted -- 解释型Python 一是种解释型语言,与之相对的是编译型语言,虽然两者的区别由于字节码编译器的存在而会有所模糊。这意味着源文件可以直接运行而不必显式地创建可执行文件再运行。解释型语言通常具有比编译型语言更短的开发/调试周期,但是其程序往往运行得更慢。参见 interactive。
interpreter shutdown -- 解释器关闭当被要求关闭时,Python 解释器将进入一个特殊运行阶段并逐步释放所有已分配资源,例如模块和各种关键内部结构等。它还会多次调用 垃圾回收器。这会触发用户定义析构器或弱引用回调中的代码执行。在关闭阶段执行的代码可能会遇到各种异常,因为其所依赖的资源已不再有效(常见的例子有库模块或警告机制等)。
解释器需要关闭的主要原因有 __main__
模块或所运行的脚本已完成执行。
iterable -- 可迭代对象一种能够逐个返回其成员项的对象。 可迭代对象的例子包括所有序列类型(如 list
, str
和 tuple
等)以及某些非序列类型如 dict
, 文件对象 以及任何定义了 __iter__()
方法或实现了 sequence 语义的 __getitem__()
方法的自定义类的对象。
可迭代对象可被用于 for
循环以及许多其他需要一个序列的地方 (zip()
, map()
, ...)。 当一个可迭代对象作为参数被传给内置函数 iter()
时,它会返回该对象的迭代器。 这种迭代器适用于对值集合的一次性遍历。 在使用可迭代对象时,你通常不需要调用 iter()
或者自己处理迭代器对象。 for
语句会自动为你处理那些操作,创建一个临时的未命名变量用来在循环期间保存迭代器。 参见 iterator, sequence 和 generator。
iterator -- 迭代器用来表示一连串数据流的对象。 重复调用迭代器的 __next__()
方法 (或将其传给内置函数 next()
) 将逐个返回流中的项。 当没有数据可用时则将引发 StopIteration
异常。 到这时迭代器对象中的数据项已耗尽,继续调用其 __next__()
方法只会再次引发 StopIteration
。 迭代器必须具有 __iter__()
方法用来返回该迭代器对象自身,因此迭代器必定也是可迭代对象,可被用于其他可迭代对象适用的大部分场合。 一个显著的例外是那些会多次重复访问迭代项的代码。 容器对象 (例如 list
) 在你每次将其传入 iter()
函数或是在 for
循环中使用时都会产生一个新的迭代器。 如果在此情况下你尝试用迭代器则会返回在之前迭代过程中被耗尽的同一迭代器对象,使其看起来就像是一个空容器。
更多信息可查看 迭代器类型。
CPython 实现细节: CPython 没有统一应用迭代器定义 __iter__()
的要求。
key function -- 键函数键函数或称整理函数,是能够返回用于排序或排位的值的可调用对象。例如,locale.strxfrm()
可用于生成一个符合特定区域排序约定的排序键。
Python 中有许多工具都允许用键函数来控制元素的排位或分组方式。其中包括 min()
, max()
, sorted()
, list.sort()
, heapq.merge()
, heapq.nsmallest()
, heapq.nlargest()
以及 itertools.groupby()
。
有多种方式可以创建一个键函数。 例如,str.lower()
方法可以用作忽略大小写排序的键函数。 或者,键函数也可通过 lambda
表达式来创建例如 lambda r: (r[0], r[2])
。 此外,operator.attrgetter()
, operator.itemgetter()
和 operator.methodcaller()
是键函数的三个构造器。 请查看 排序指引 来获取创建和使用键函数的示例。
keyword argument -- 关键字参数参见 argument。
lambda由一个单独 expression 构成的匿名内联函数,表达式会在调用时被求值。创建 lambda 函数的句法为 lambda [parameters]: expression
LBYL“先查看后跳跃”的英文缩写。这种代码编写风格会在进行调用或查找之前显式地检查前提条件。此风格与 EAFP 方式恰成对比,其特点是大量使用 if
语句。
在多线程环境中,LBYL 方式会导致“查看”和“跳跃”之间发生条件竞争风险。例如,以下代码 if key in mapping: return mapping[key]
可能由于在检查操作之后其他线程从 mapping 中移除了 key 而出错。这种问题可通过加锁或使用 EAFP 方式来解决。
list一种 Python 内置 sequence。 虽然名为列表,但它更类似于其他语言中的数组而非链表,因为访问元素的时间复杂度为 O(1)。
list comprehension -- 列表推导式处理一个序列中的所有或部分元素并返回结果列表的一种紧凑写法。result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]
将生成一个 0 到 255 范围内的十六进制偶数对应字符串(0x..)的列表。其中 if
子句是可选的,如果省略则 range(256)
中的所有元素都会被处理。
loader -- 加载器负责加载模块的对象。它必须定义名为 load_module()
的方法。加载器通常由一个 finder 返回。详情参见 PEP 302,对于 abstract base class 可参见 importlib.abc.Loader
。
locale encoding -- 语言区域编码格式在 Unix 上,它是 LC_CTYPE 语言区域的编码格式。 它可以通过 locale.setlocale(locale.LC_CTYPE, new_locale)
来设置。
在 Windows 上,它是 ANSI 代码页 (如: "cp1252"
)。
在 Android 和 VxWorks 上,Python 使用 "utf-8"
作为语言区域编码格式。
locale.getencoding()
可被用来获取语言区域编码格式。
另请参阅 filesystem encoding and error handler。
magic method -- 魔术方法special method 的非正式同义词 。
mapping -- 映射一种支持任意键查找并实现了 collections.abc.Mapping
或 collections.abc.MutableMapping
抽象基类 所规定方法的容器对象。 此类对象的例子包括 dict
, collections.defaultdict
, collections.OrderedDict
以及 collections.Counter
。
meta path finder -- 元路径查找器sys.meta_path
的搜索所返回的 finder。元路径查找器与 path entry finders 存在关联但并不相同。
请查看 importlib.abc.MetaPathFinder
了解元路径查找器所实现的方法。
metaclass -- 元类一种用于创建类的类。类定义包含类名、类字典和基类列表。元类负责接受上述三个参数并创建相应的类。大部分面向对象的编程语言都会提供一个默认实现。Python 的特别之处在于可以创建自定义元类。大部分用户永远不需要这个工具,但当需要出现时,元类可提供强大而优雅的解决方案。它们已被用于记录属性访问日志、添加线程安全性、跟踪对象创建、实现单例,以及其他许多任务。
更多详情参见 元类。
method -- 方法在类内部定义的函数。如果作为该类的实例的一个属性来调用,方法将会获取实例对象作为其第一个 argument (通常命名为 self
)。参见 function 和 nested scope。
method resolution order -- 方法解析顺序方法解析顺序就是在查找成员时搜索基类的顺序。 请参阅 Python 2.3 方法解析顺序 了解自 2.3 发布版起 Python 解释器所使用算法的详情。
module此对象是 Python 代码的一种组织单位。各模块具有独立的命名空间,可包含任意 Python 对象。模块可通过 importing 操作被加载到 Python 中。
另见 package。
module spec -- 模块规格一个命名空间,其中包含用于加载模块的相关导入信息。是 importlib.machinery.ModuleSpec
的实例。
MRO参见 method resolution order。
mutable -- 可变对象可变对象可以在其 id()
保持固定的情况下改变其取值。另请参见 immutable。
named tuple -- 具名元组术语“具名元组”可用于任何继承自元组,并且其中的可索引元素还能使用名称属性来访问的类型或类。 这样的类型或类还可能拥有其他特性。
有些内置类型属于具名元组,包括 time.localtime()
和 os.stat()
的返回值。 另一个例子是 sys.float_info
:
>>> sys.float_info[1] # indexed access
>>> sys.float_info.max_exp # named field access
>>> isinstance(sys.float_info, tuple) # kind of tuple
有些具名元组是内置类型(比如上面的例子)。 此外,具名元组还可通过常规类定义从 tuple
继承并定义指定名称的字段的方式来创建。 这样的类可以手工编号,或者也可以通过继承 typing.NamedTuple
,或者使用工厂函数 collections.namedtuple()
来创建。 后一种方式还会添加一些手工编写或内置的具名元组所没有的额外方法。
namespace -- 命名空间命名空间是存放变量的场所。命名空间有局部、全局和内置的,还有对象中的嵌套命名空间(在方法之内)。命名空间通过防止命名冲突来支持模块化。例如,函数 builtins.open
与 os.open()
可通过各自的命名空间来区分。命名空间还通过明确哪个模块实现那个函数来帮助提高可读性和可维护性。例如,random.seed()
或 itertools.islice()
这种写法明确了这些函数是由 random
与 itertools
模块分别实现的。
namespace package -- 命名空间包PEP 420 所引入的一种仅被用作子包的容器的 package,命名空间包可以没有实体表示物,其描述方式与 regular package 不同,因为它们没有 __init__.py
文件。
另可参见 module。
nested scope -- 嵌套作用域在一个定义范围内引用变量的能力。例如,在另一函数之内定义的函数可以引用前者的变量。请注意嵌套作用域默认只对引用有效而对赋值无效。局部变量的读写都受限于最内层作用域。类似的,全局变量的读写则作用于全局命名空间。通过 nonlocal
关键字可允许写入外层作用域。
new-style class -- 新式类对目前已被应用于所有类对象的类形式的旧称谓。 在较早的 Python 版本中,只有新式类能够使用 Python 新增的更灵活我,如 __slots__
、描述器、特征属性、__getattribute__()
、类方法和静态方法等。
object -- 对象任何具有状态(属性或值)以及预定义行为(方法)的数据。object 也是任何 new-style class 的最顶层基类名。
包一种可包含子模块或递归地包含子包的 Python module。 从技术上说,包是具有 __path__
属性的 Python 模块。
另参见 regular package 和 namespace package。
parameter -- 形参function (或方法)定义中的命名实体,它指定函数可以接受的一个 argument (或在某些情况下,多个实参)。有五种形参:
positional-or-keyword:位置或关键字,指定一个可以作为 位置参数 传入也可以作为 关键字参数 传入的实参。这是默认的形参类型,例如下面的 foo 和 bar:
def func(foo, bar=None): ...
positional-only:仅限位置,指定一个只能通过位置传入的参数。 仅限位置形参可通过在函数定义的形参列表中它们之后包含一个 /
字符来定义,例如下面的 posonly1 和 posonly2:
def func(posonly1, posonly2, /, positional_or_keyword): ...
keyword-only:仅限关键字,指定一个只能通过关键字传入的参数。仅限关键字形参可通过在函数定义的形参列表中包含单个可变位置形参或者在多个可变位置形参之前放一个 *
来定义,例如下面的 kw_only1 和 kw_only2:
def func(arg, *, kw_only1, kw_only2): ...
var-positional:可变位置,指定可以提供由一个任意数量的位置参数构成的序列(附加在其他形参已接受的位置参数之后)。这种形参可通过在形参名称前加缀 *
来定义,例如下面的 args:
def func(*args, **kwargs): ...
var-keyword:可变关键字,指定可以提供任意数量的关键字参数(附加在其他形参已接受的关键字参数之后)。这种形参可通过在形参名称前加缀 **
来定义,例如上面的 kwargs。
形参可以同时指定可选和必选参数,也可以为某些可选参数指定默认值。
另参见 argument 术语表条目、参数与形参的区别 中的常见问题、inspect.Parameter
类、函数定义 一节以及 PEP 362。
path entry -- 路径入口import path 中的一个单独位置,会被 path based finder 用来查找要导入的模块。
path entry finder -- 路径入口查找器任一可调用对象使用 sys.path_hooks
(即 path entry hook) 返回的 finder,此种对象能通过 path entry 来定位模块。
请参看 importlib.abc.PathEntryFinder
以了解路径入口查找器所实现的各个方法。
path entry hook -- 路径入口钩子一种可调用对象,它在知道如何查找特定 path entry 中的模块的情况下能够使用 sys.path_hooks
列表返回一个 path entry finder。
path based finder -- 基于路径的查找器默认的一种 元路径查找器,可在一个 import path 中查找模块。
path-like object -- 路径类对象代表一个文件系统路径的对象。路径类对象可以是一个表示路径的 str
或者 bytes
对象,还可以是一个实现了 os.PathLike
协议的对象。一个支持 os.PathLike
协议的对象可通过调用 os.fspath()
函数转换为 str
或者 bytes
类型的文件系统路径;os.fsdecode()
和 os.fsencode()
可被分别用来确保获得 str
或 bytes
类型的结果。此对象是由 PEP 519 引入的。
PEP“Python 增强提议”的英文缩写。一个 PEP 就是一份设计文档,用来向 Python 社区提供信息,或描述一个 Python 的新增特性及其进度或环境。PEP 应当提供精确的技术规格和所提议特性的原理说明。
PEP 应被作为提出主要新特性建议、收集社区对特定问题反馈以及为必须加入 Python 的设计决策编写文档的首选机制。PEP 的作者有责任在社区内部建立共识,并应将不同意见也记入文档。
参见 PEP 1。
portion -- 部分构成一个命名空间包的单个目录内文件集合(也可能存放于一个 zip 文件内),具体定义见 PEP 420。
positional argument -- 位置参数参见 argument。
provisional API -- 暂定 API暂定 API 是指被有意排除在标准库的向后兼容性保证之外的应用编程接口。虽然此类接口通常不会再有重大改变,但只要其被标记为暂定,就可能在核心开发者确定有必要的情况下进行向后不兼容的更改(甚至包括移除该接口)。此种更改并不会随意进行 -- 仅在 API 被加入之前未考虑到的严重基础性缺陷被发现时才可能会这样做。
即便是对暂定 API 来说,向后不兼容的更改也会被视为“最后的解决方案” —— 任何问题被确认时都会尽可能先尝试找到一种向后兼容的解决方案。
这种处理过程允许标准库持续不断地演进,不至于被有问题的长期性设计缺陷所困。详情见 PEP 411。
provisional package -- 暂定包参见 provisional API。
Python 3000Python 3.x 发布路线的昵称(这个名字在版本 3 的发布还遥遥无期的时候就已出现了)。有时也被缩写为“Py3k”。
Pythonic指一个思路或一段代码紧密遵循了 Python 语言最常用的风格和理念,而不是使用其他语言中通用的概念来实现代码。例如,Python 的常用风格是使用 for
语句循环来遍历一个可迭代对象中的所有元素。许多其他语言没有这样的结构,因此不熟悉 Python 的人有时会选择使用一个数字计数器:
for i in range(len(food)):
print(food[i])
而相应的更简洁更 Pythonic 的方法是这样的:
for piece in food:
print(piece)
qualified name -- 限定名称一个以点号分隔的名称,显示从模块的全局作用域到该模块中定义的某个类、函数或方法的“路径”,相关定义见 PEP 3155。对于最高层级的函数和类,限定名称与对象名称一致:
>>> class C:
... class D:
... def meth(self):
... pass
>>> C.__qualname__
>>> C.D.__qualname__
'C.D'
>>> C.D.meth.__qualname__
'C.D.meth'
当被用于引用模块时,完整限定名称 意为标示该模块的以点号分隔的整个路径,其中包含其所有的父包,例如 email.mime.text
:
>>> import email.mime.text
>>> email.mime.text.__name__
'email.mime.text'
reference count -- 引用计数对象的引用计数。 当对象的引用计数降为零时,该对象的内存就会被回收。 有些对象是“不朽的”,其引用计数永远不会被修改,因此对象永远不会被回收。 引用计数在 Python 代码侧通常不可见,但它是 CPython 实现的一个关键元素。 程序员可以调用 sys.getrefcount()
函数来获知特定对象的引用计数。
regular package -- 常规包传统型的 package,例如包含有一个 __init__.py
文件的目录。
另参见 namespace package。
__slots__一种写在类内部的声明,通过预先声明实例属性等对象并移除实例字典来节省内存。虽然这种技巧很流行,但想要用好却并不容易,最好是只保留在少数情况下采用,例如极耗内存的应用程序,并且其中包含大量实例。
sequence一种 iterable,它支持通过 __getitem__()
特殊方法来使用整数索引进行高效的元素访问,并定义了一个返回序列长度的 __len__()
方法。 内置的序列类型有 list
, str
, tuple
和 bytes
等。 请注意虽然 dict
也支持 __getitem__()
和 __len__()
,但它被归类为映射而非序列,因为它使用任意 immutable 键而不是整数来查找元素。
collections.abc.Sequence
抽象基类定义了一个更丰富的接口,它在 __getitem__()
和 __len__()
之外,还添加了 count()
, index()
, __contains__()
和 __reversed__()
。 实现此扩展接口的类型可以使用 register()
来显式地注册。 要获取有关通用序列方法的更多文档,请参阅 通用序列操作。
set comprehension -- 集合推导式处理一个可迭代对象中的所有或部分元素并返回结果集合的一种紧凑写法。 results = {c for c in 'abracadabra' if c not in 'abc'}
将生成字符串集合 {'r', 'd'}
。 参见 列表、集合与字典的显示。
single dispatch -- 单分派一种 generic function 分派形式,其实现是基于单个参数的类型来选择的。
slice -- 切片通常只包含了特定 sequence 的一部分的对象。切片是通过使用下标标记来创建的,在 []
中给出几个以冒号分隔的数字,例如 variable_name[1:3:5]
。方括号(下标)标记在内部使用 slice
对象。
special method -- 特殊方法一种由 Python 隐式调用的方法,用来对某个类型执行特定操作例如相加等等。这种方法的名称的首尾都为双下划线。特殊方法的文档参见 特殊方法名称。
statement -- 语句语句是程序段(一个代码“块”)的组成单位。一条语句可以是一个 expression 或某个带有关键字的结构,例如 if
、while
或 for
。
static type checker -- 静态类型检查器读取 Python 代码并进行分析,以查找问题例如拼写错误的外部工具。 另请参阅 类型提示 以及 typing
模块。
strong reference -- 强引用在 Python 的 C API 中,强引用是指为持有引用的代码所拥有的对象的引用。 在创建引用时可通过调用 Py_INCREF()
来获取强引用而在删除引用时可通过 Py_DECREF()
来释放它。
Py_NewRef()
函数可被用于创建一个对象的强引用。 通常,必须在退出某个强引用的作用域时在该强引用上调用 Py_DECREF()
函数,以避免引用的泄漏。
另请参阅 borrowed reference。
text encoding -- 文本编码格式在Python中,一个字符串是一串 Unicode 代码点(范围为 U+0000
--U+10FFFF
)。 为了存储或传输一个字符串,它需要被序列化为一串字节。
将一个字符串序列化为一个字节序列被称为“编码”,而从字节序列中重新创建字符串被称为“解码”。
有各种不同的文本序列化 编码器 ,它们被统称为 "文本编码格式"。
text file -- 文本文件一种能够读写 str
对象的 file object。通常一个文本文件实际是访问一个面向字节的数据流并自动处理 text encoding。文本文件的例子包括以文本模式('r'
或 'w'
)打开的文件、sys.stdin
、sys.stdout
以及 io.StringIO
的实例。
另请参看 binary file 了解能够读写 字节型对象 的文件对象。
triple-quoted string -- 三引号字符串首尾各带三个连续双引号(")或者单引号(')的字符串。它们在功能上与首尾各用一个引号标注的字符串没有什么不同,但是有多种用处。它们允许你在字符串内包含未经转义的单引号和双引号,并且可以跨越多行而无需使用连接符,在编写文档字符串时特别好用。
type类型决定一个 Python 对象属于什么种类;每个对象都具有一种类型。要知道对象的类型,可以访问它的 __class__
属性,或是通过 type(obj)
来获取。
type alias -- 类型别名一个类型的同义词,创建方式是把类型赋值给特定的标识符。
类型别名的作用是简化 类型注解。例如:
def remove_gray_shades(
colors: list[tuple[int, int, int]]) -> list[tuple[int, int, int]]:
可以这样提高可读性:
Color = tuple[int, int, int]
def remove_gray_shades(colors: list[Color]) -> list[Color]:
参见 typing
和 PEP 484,其中有对此功能的详细描述。
type hint -- 类型注解annotation 为变量、类属性、函数的形参或返回值指定预期的类型。
类型提示是可选的而不是 Python 的强制要求,但它们对 静态类型检查器 很有用处。 它们还能协助 IDE 实现代码补全与重构。
全局变量、类属性和函数的类型注解可以使用 typing.get_type_hints()
来访问,但局部变量则不可以。
参见 typing
和 PEP 484,其中有对此功能的详细描述。
universal newlines -- 通用换行一种解读文本流的方式,将以下所有符号都识别为行结束标志:Unix 的行结束约定 '\n'
、Windows 的约定 '\r\n'
以及旧版 Macintosh 的约定 '\r'
。参见 PEP 278 和 PEP 3116 和 bytes.splitlines()
了解更多用法说明。
variable annotation -- 变量标注对变量或类属性的 annotation。
在标注变量或类属性时,还可选择为其赋值:
class C:
field: 'annotation'
变量标注通常被用作 类型提示:例如以下变量预期接受 int
类型的值:
count: int = 0
变量标注语法的详细解释见 带标注的赋值语句 一节。
参见 function annotation, PEP 484 和 PEP 526,其中描述了此功能。 另请参阅 注解最佳实践 以了解使用标注的最佳实践。
virtual environment -- 虚拟环境一种采用协作式隔离的运行时环境,允许 Python 用户和应用程序在安装和升级 Python 分发包时不会干扰到同一系统上运行的其他 Python 应用程序的行为。
另参见 venv
。
virtual machine -- 虚拟机一台完全通过软件定义的计算机。Python 虚拟机可执行字节码编译器所生成的 bytecode。
Zen of Python -- Python 之禅列出 Python 设计的原则与哲学,有助于理解与使用这种语言。查看其具体内容可在交互模式提示符中输入 "import this
"。
2001-2024, Python Software Foundation.
This page is licensed under the Python Software Foundation License Version 2.
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See History and License for more information.