Glossary

2 to3 在标准库中以lib2to3的形式提供;提供一个独立的入口点作为Tools/scripts/2to3。参见2 to3-自动 Python 2 到 3 代码翻译

complex(real=3, imag=5)
complex(**{'real': 3, 'imag': 5})
complex(3, 5)
complex(*(3, 5))

将参数分配给函数体内的命名局部变量。有关 Management 此分配的规则,请参见Calls部分。从语法上讲,任何表达式都可以用来表示参数。评估值分配给局部变量。

另请参见parameter词汇表条目和参数和参数之间的区别上的常见问题。

字节码指令列表可在dis 模块的文档中找到。

装饰器语法只是语法糖,以下两个函数定义在语义上是等效的:

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

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

类存在相同的概念,但在该类中较少使用。有关装饰器的更多信息,请参见function definitionsclass definitions的文档。

有关 Descriptors 的方法的更多信息,请参见Implementing Descriptors

实际上,文件对象分为三类:原始二进制文件,缓冲的二进制文件和文本文件。它们的接口在io模块中定义。创建文件对象的规范方法是使用open()函数。

from __future__ import division

表达式11/4的计算结果为2.75。pass导入future模块并评估其变量,您可以看到新Function何时首次添加到语言中以及何时将成为默认Function:

>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
>>> sum(i*i for i in range(10))         # sum of squares 0, 1, 4, ... 81
285

但是,某些扩展模块(标准的或第三方的)被设计为在执行诸如压缩或散列之类的计算密集型任务时释放 GIL。另外,在执行 I/O 时,始终释放 GIL。

过去创建“自由线程”解释器(一种以更精细的粒度锁定共享数据的解释器)的努力并未成功,因为在常见的单处理器情况下性能会受到影响。相信克服该性能问题将使实施更加复杂,因此维护成本更高。

散列性使对象可用作字典键和 set 成员,因为这些数据结构在内部使用散列值。

Python 的所有不可变内置对象都是可哈希的,而没有可变容器(例如列表或字典)是可哈希的。作为用户定义类实例的对象默认情况下是可哈希的;它们都比较不相等(除了它们本身),并且它们的哈希值是从id()派生的。

可以在Iterator Types中找到更多信息。

Python 中的许多工具都接受关键Function来控制元素的排序或分组方式。它们包括min()max()sorted()list.sort()heapq.nsmallest()heapq.nlargest()itertools.groupby()

有几种创建键Function的方法。例如。 str.lower()方法可用作区分大小写的排序的关键Function。或者,可以从_表达式(例如lambda r: (r[0], r[2]))构建临时键Function。此外,operator模块提供了三个关键函数构造函数:attrgetter()itemgetter()methodcaller()。有关如何创建和使用关键Function的示例,请参见排序方式

在多线程环境中,LBYL 方法可能会在“外观”和“跳跃”之间引入竞争条件。例如,如果另一个线程在测试之后但在查找之前从* mapping 中删除 key *,则代码if key in mapping: return mapping[key]可能会失败。可以使用锁或使用 EAFP 方法解决此问题。

可以在定制类创建中找到更多信息。

另请参见package

命名 Tuples 可以是内置类型,例如time.struct_time,也可以使用常规的类定义来创建。也可以使用工厂函数collections.namedtuple()创建Function齐全的名为 tuple 的 Tuples。后一种方法自动提供了额外的Function,例如像Employee(name='jones', title='programmer')这样的自文档表示。

可以在New-style and classic classes中找到更多信息。

def func(foo, bar=None): ...
def func(*args, **kwargs): ...

参数可以指定可选参数和必需参数,以及一些可选参数的默认值。

另请参见argument词汇表条目,参数和参数之间的区别上的 FAQ 问题和Function definitions部分。

PEP 旨在成为主要机制,用于提出主要的新Function,收集社区对某个问题的意见以及记录已纳入 Python 的设计决策。 PEP 作者负责在社区内构建共识并记录不同意见。

See PEP 1.

for i in range(len(food)):
    print food[i]

与更清洁的 Pythonic 方法相反:

for piece in food:
    print piece
首页