2内置功能

Python解释器中内置了许多函数可用。它们在这里按字母顺序列出。

内置功能

abs()

divmod()

输入()

打开()

统计方法()

全部()

enumerate()

int()

订单()

str()

任意()

评估()

isinstance()

pow()

sum()

基线字符串()

执行文件()

issubclass()

打印()

super()

bin()

文件()

iter()

属性()

元组()

布尔()

过滤器()

透镜()

范围()

类型()

字节数组()

float()

列表()

原始输入(_input)

unichr()

可调用()

格式()

本地()

减少()

unicode()

chr()

冻结()

long()

重新加载()

变量()

classmethod()

获取属性()

地图()

报告()

xrange()

cmp()

全局()

最大()

反向()

zip()

编译()

hasattr()

内存视图()

圆形()

__导入_()

复合()

哈希()

最小()

设置()

delattr()

help()

next()

setattr()

dict()

六进制()

对象()

切片()

目录()

id()

oct()

排序()

此外,还有其他四个内置函数不再认为至关重要:应用(),缓冲区(),强制()、和实习生()。它们记录在非本质内置功能第节。

防抱死制动系统(x个)

返回数字的绝对值。论点可以是简单的或长的整数或浮点数。如果参数是复数,则其返回幅度。

全部的(可迭代的)

返回真的如果的所有元素可迭代的为true(或者如果iterable为空)。相当于:

定义 全部的(可迭代的):
    对于 要素 在里面 可迭代的:
        如果  要素:
            返回 False(错误)
    返回 真的

2.5版中的新增功能。

任何(可迭代的)

返回真的如果任何元素可迭代的是真的。如果可迭代为空,返回False(错误).相当于:

定义 任何(可迭代的):
    对于 要素 在里面 可迭代的:
        如果 要素:
            返回 真的
    返回 False(错误)

2.5版中的新增功能。

基本字符串()

此抽象类型是的超类字符串unicode码.它无法调用或实例化,但可以使用它测试对象是的实例字符串unicode码.isinstance(对象, 基本字符串)等于isinstance(对象, (字符串, unicode)).

2.3版新增。

箱子(x个)

将整数转换为二进制字符串。结果是有效的Python表达式。如果x个不是Python整数对象,它必须定义一个__索引_()方法返回整数。

2.6版中的新增功能。

布尔([x个])

返回布尔值,即真的False(错误).x个已转换使用标准的真实性测试程序。如果x个为假或省略,这收益False(错误); 否则返回真的.布尔也是一个类,它是整数.等级布尔不能被进一步分类。它的唯一实例是False(错误)真的.

2.2.1版中的新增功能。

在版本2.3中更改:如果未给定参数,此函数将返回False(错误).

字节射线([来源[,编码[,错误]]])

返回一个新的字节数组。这个字节射线类是可变的范围0<=x<256的整数序列。它有大多数通常的可变序列的方法,如中所述可变序列类型,以及作为大多数方法字符串类型有,请参见字符串方法.

可选的来源参数可以用于初始化数组不同的方式:

  • 如果是的话unicode码,您还必须提供编码(也可以选择,错误)参数;字节数组()然后将unicode转换为字节使用unicode.encode().

  • 如果是整数,数组将具有该大小用空字节初始化。

  • 如果是符合缓冲器接口,只读缓冲区对象的属性将用于初始化字节数组。

  • 如果是可迭代的,它必须是范围内整数的可迭代0 <= x个 < 256,用作数组的初始内容。

如果没有参数,将创建大小为0的数组。

2.6版中的新增功能。

可调用的(对象)

返回真的如果对象参数似乎是可调用的,False(错误)如果没有。如果这样返回true,调用仍有可能失败,但如果为false,打电话对象永远不会成功。请注意,类是可调用的(调用类返回一个新实例);如果类实例具有__调用__()方法。

chr公司()

返回ASCII码为整数的一个字符字符串。对于例子,chr(97)返回字符串“a”。这与订单()。参数必须在[0..255]范围内(含);值错误将在以下情况下提出超出该范围。请参见unichr().

分类方法(功能)

返回的类方法功能.

类方法将类作为隐式第一个参数接收,就像instance方法接收实例。要声明类方法,请使用成语:

 C类(对象):
    @分类方法
    定义 (f)(cls公司, 参数1, 参数2, ...):
        ...

这个@分类方法形式是一个函数装饰工–请参见功能定义了解详细信息。

可以在类上调用类方法(例如C.f())或在实例上(例如作为C().f()). 除了其类之外,实例被忽略。如果一个类方法,则派生类对象作为隐含的第一个参数。

类方法不同于C++或Java静态方法。如果你想要这些,看见统计方法().

有关类方法的更多信息,请参见标准类型层次结构.

2.2版中的新增功能。

在版本2.4中更改:添加了函数修饰符语法。

化学机械抛光(x个,)

比较两个对象x个并根据结果。如果x个 < ,如果为零x个 == 严格肯定,如果x个 > .

编译(来源,文件名,模式[,旗帜[,不要继承]])

编译来源到代码或AST对象中。可以执行代码对象执行官语句或通过调用计算评估().来源可以是Unicode字符串,也可以是拉丁语-1编码字符串或AST对象。请参阅ast公司有关如何工作的信息的模块文档使用AST对象。

这个文件名参数应该给出从中读取代码的文件;如果不是从文件中读取,则传递一些可识别的值(“<string>”常用)。

这个模式参数指定必须编译的代码类型;它可能是“执行”如果来源由一系列语句组成,“评估”如果是的话由单个表达式组成,或“单个”如果它由单个交互式语句(在后一种情况下,表达式语句评估为除将打印)。

可选参数旗帜不要继承控制哪个未来语句(请参见政治公众人物236)影响编译来源如果两者都不存在存在(或两者都为零),则使用这些未来值编译代码正在调用的代码中有效的语句compile()。如果旗帜给出了参数,并且不要继承不是(或为零),则指定的未来报表旗帜参数用于那些无论如何都会被使用的。如果不要继承则为非零整数这个旗帜论据就是它-围绕通话的未来有效陈述编译被忽略。

未来语句由位指定,这些位可以按位或组合在一起指定多个语句。指定给定功能所需的位字段可以作为编译器标志上的属性这个_功能中的实例__未来__模块。

此函数将引发语法错误如果编译的源是无效的,类型错误如果源包含空字节。

如果要将Python代码解析为其AST表示,请参见ast.parse().

注释

在中编译包含多行代码的字符串时“单个”“评估”模式下,输入必须由至少一行换行符终止字符。这是为了便于检测不完整和完整中的语句代码模块。

警告

可以使用编译为AST时,字符串足够大/复杂对象,因为Python的AST编译器中存在堆栈深度限制。

在版本2.3中更改:这个旗帜不要继承添加了个参数。

在版本2.6中更改:支持编译AST对象。

在版本2.7中更改:允许使用Windows和Mac换行符。也输入“执行”模式不再需要以换行结束。

复杂的([真实的[,图像]])

返回带值的复数真实的+图像*1j或转换字符串或数字转换为复数。如果第一个参数是字符串,它将是解释为复数,且函数必须在不需要秒的情况下调用参数。第二个参数不能是字符串。每个参数可以是任何数字类型(包括复数)。如果图像则默认为零该函数用作数字转换函数,如int(),long()float()。如果两个参数都被忽略,则返回0j个.

注释

从字符串转换时,字符串不能包含空格围绕中心+-操作员。例如,复合('1+2j')很好,但是复杂('1 + 2j’)加薪值错误.

复杂类型如所述数字类型-int、float、long、complex.

延迟器(对象,名称)

这是的亲戚setattr()。参数是一个对象和一个字符串。字符串必须是对象属性之一的名称。这个如果对象允许,函数将删除命名属性例子,delattr(x, “foobar”)等于德尔 x.foobar公司.

字典(**夸格)
字典(映射,**夸尔格)
字典(可迭代的,**夸格)

创建新词典。这个字典对象是dictionary类。请参见字典映射类型-dict获取有关此类的文档。

对于其他容器,请参阅内置列表,设置、和元组类,以及收藏模块。

目录([对象])

不带参数,返回当前本地作用域中的名称列表。使用参数,尝试返回该对象的有效属性列表。

如果对象有一个名为__目录__(),将调用此方法,并且必须返回属性列表。这允许实现自定义__获取属性_()__获取属性__()函数自定义方式目录()报告其属性。

如果对象没有提供__目录__(),函数会尽力从对象的__字典__属性(如果已定义),以及从它的类型对象。结果列表不一定完整,可能当对象具有自定义时不准确__获取属性_().

默认值目录()不同类型的对象,因为它试图生成最相关的,而不是完整的,信息:

  • 如果对象是模块对象,则列表包含模块的名称属性。

  • 如果对象是类型或类对象,则列表包含其名称属性及其基的属性的递归。

  • 否则,该列表包含对象属性的名称类的属性,以及类基类的属性的递归类。

结果列表按字母顺序排序。例如:

>>>进口 结构
>>>目录()   #显示模块名称空间中的名称
['__builtins__','__doc__'、'__name__'和'struct']
>>>目录(结构)   #显示结构模块中的名称
[‘结构’,‘__builtins__',‘__doc__’,‘___file__’,’__name__’,
'__package__','_clearcache','calcsize','error','pack','pack_into',
“unpack”,“unpack_from”]
>>> 形状(对象):
定义__dir__(自身):
return['区域','周长','位置']
>>> = 形状()
>>>目录()
[“面积”、“周长”、“位置”]

注释

因为目录()主要是为了方便在交互式提示,它试图提供一组有趣的名称试图提供严格或一致定义的名称集详细的行为可能会在不同版本之间发生变化。例如,元类属性当参数是类时,不在结果列表中。

divmod公司(,b条)

将两个(非复数)数字作为参数并返回一对数字使用长除法时,由商和余数组成。混合操作数类型,适用二进制算术运算符的规则。对于普通和长整数,结果与(a) // b、, % b).对于浮点结果是(q, % b),其中q个通常是数学地板(a / b)但可能比这个少1。无论如何q个 * b条 + % b条非常接近,如果 % b条非零,符号与b条、和0 <= abs(a % b) < 防抱死制动系统(b).

在版本2.3中进行了更改:使用divmod()不推荐使用复数。

列举(序列,开始=0)

返回枚举对象。序列必须是序列迭代器或其他支持迭代的对象。这个next()返回的迭代器的方法enumerate()返回一个包含计数的元组(来自开始默认为0)和通过迭代获得的值序列:

>>>季节 = [“弹簧”, “夏季”, “秋季”, “冬季”]
>>>列表(列举(季节))
[(0,‘春季’),(1,‘夏季’)
>>>列表(列举(季节, 开始=1))
[(1,‘春季’),(2,‘夏季’)

相当于:

定义 列举(序列, 开始=0):
    n个 = 开始
    对于 元素 在里面 序列:
        产量 n个, 元素
        n个 += 1

2.3版中的新增功能。

在2.6版中进行了更改:这个开始已添加参数。

评估(表达[,全局变量[,当地人]])

参数是Unicode或拉丁语-1编码字符串和可选全球和本地人。如果提供,全局变量必须是字典。如果提供,当地人可以是任何映射对象。

在版本2.4中更改:从前当地人被要求是一本字典。

这个表达参数作为Python表达式进行分析和求值(技术上来说,是一个条件列表)使用全局变量当地人字典作为全局和本地命名空间。如果全局变量字典是存在并且缺少'__builtins__',当前全局变量被复制到全局变量之前表达已分析。这意味着表达通常已满访问标准__内置__模块和受限环境传播。如果当地人字典被省略,默认为全局变量字典。如果两个字典都被省略,则在环境,其中评估()被调用。返回值是计算的表达式。语法错误被报告为异常。例子:

>>>x个 = 1
>>>打印 评估(“x+1”)
2

此函数还可以用于执行任意代码对象(例如由创建的编译()). 在这种情况下,改为传递代码对象如果代码对象是用编译的“执行”作为模式论点,评估()的返回值为.

提示:语句的动态执行由执行官声明。支持从文件执行语句执行文件()功能。这个全局()本地()功能分别返回当前的全局字典和本地字典,可以是便于传递给使用评估()执行文件().

请参见ast.literal_eval()对于可以安全计算字符串的函数表达式只包含文字。

执行文件(文件名[,全局变量[,当地人]])

此函数类似于执行官语句,但解析文件而不是字符串。它不同于进口中的语句它不使用模块管理-它读取文件无条件且不创建新模块。1

参数是一个文件名和两个可选字典。已分析该文件并使用这个全局变量当地人字典作为全局和本地命名空间。如果提供,当地人可以是任何映射对象。请记住,在模块级别,global和local是同一个字典。如果两个单独的对象作为全局变量当地人,代码将按如下方式执行嵌入到类定义中。

在版本2.4中更改:从前当地人被要求是一本字典。

如果当地人字典被省略,默认为全局变量字典。如果省略了这两个字典,则表达式将在环境中执行哪里执行文件()被调用。返回值为.

注释

默认值当地人按照功能描述行事本地()如下所示:对默认值的修改当地人不应尝试使用字典。通过明确的当地人如果需要查看代码对当地人after函数执行文件()返回。执行文件()不能是用于修改函数的局部变量。

文件(名称[,模式[,缓冲]])

的构造函数函数文件类型,在第节中进一步描述文件对象。构造函数的参数与打开()内置函数如下所述。

打开文件时,最好使用打开()而不是调用这个构造函数。文件更适合类型测试(对于示例,编写isinstance(f, 文件)).

2.2版新增。

滤波器(功能,可迭代的)

从以下元素构建一个列表可迭代的对于其中功能收益真的。可迭代的可以是序列,也可以是支持迭代或迭代器。如果可迭代的是字符串或元组,则结果为也有这种类型;否则它总是一个列表。如果功能,假设恒等函数,即可迭代的那是false被删除。

请注意过滤器(功能, 可迭代)等于[项目 对于 项目 在里面 可迭代的 如果 功能(项目)]如果函数不是[项目 对于 项目 在里面 可迭代的 如果 项目]如果函数为.

请参见itertools.ifilter()itertools.ifilterfalse()对于迭代器此函数的版本,包括筛选元素的变体其中功能返回false。

浮动([x个])

返回由数字或字符串构造的浮点数x个.

如果参数是字符串必须包含可能有符号的十进制或浮点数字,可能嵌入到空白中。参数也可以是[+|-]nan或[+|-]inf。否则,参数可能是普通整数或长整数或浮点数,以及具有相同值的浮点数(在Python的浮点精度内)返回。如果没有参数给定,返回0.

注释

传入字符串时,可能会返回NaN和Infinity的值,具体取决于在基础C库上。Float接受字符串nan、inf和-infNaN和正无穷大或负无穷大。大小写和前导的+被忽略为以及前导-对于NaN被忽略。浮点总是表示NaN和无穷大作为nan、inf或-inf。

浮动类型如所述数字类型-int、float、long、complex.

格式(价值[,格式规范])

转换价值转换为“格式化”表示,由格式规范.解释格式规范取决于类型价值参数,但是有一个标准格式语法由大多数内置类型使用:格式规范迷你语言.

注释

格式(值, 格式规范)仅仅是通话值__格式_(格式_规范).

2.6版中的新增功能。

冰冻的([可迭代的])

返回新的冰冻的对象,可以选择从中获取元素可迭代的.冰冻的是一个内置类。请参见冰冻的集合类型-Set,frozenset获取有关此类的文档。

对于其他容器,请参阅内置设置,列表,元组、和字典类,以及收藏模块。

2.4版中的新增功能。

获取属性(对象,名称[,违约])

返回的命名属性的值对象.名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,获取属性(x, “foobar”)等于x.foobar公司。如果命名属性不存在,违约在以下情况下返回提供,否则属性错误被提起。

全局变量()

返回表示当前全局符号表的字典。这总是当前模块的字典(在函数或方法中,这是定义它的模块,而不是调用它的模块)。

哈萨特(对象,名称)

参数是一个对象和一个字符串真的如果字符串是对象属性之一的名称,False(错误)如果没有。(这是通过调用实现getattr(对象, 名称)看看它是否会引发是否异常。)

搞砸(对象)

返回对象的哈希值(如果有)。哈希值是整数。它们用于在字典查找过程中快速比较字典关键字。比较相等的数值具有相同的哈希值(即使它们是不同类型,如1和1.0)。

帮助([对象])

调用内置帮助系统。(此功能用于交互使用。)如果没有给出参数,交互式帮助系统将在解释器控制台。如果参数是字符串,则查找字符串作为模块、函数、类、方法、关键字或文档的名称主题,并在控制台上打印帮助页。如果论点是其他的类型的对象时,将生成有关该对象的帮助页。

此函数由网站模块。

2.2版中的新增功能。

十六进制(x个)

将整数(任何大小)转换为小写十六进制字符串前缀为“0x”,例如:

>>>十六进制(255)
“0xff”
>>>十六进制(-42)
“-0x2a”
>>>十六进制(1L(左))
“0x1L”

如果x不是Python整数长的对象,它必须定义返回字符串的__hex()方法。

另请参见int()用于将十六进制字符串转换为以16为基数的整数。

注释

要获取浮点的十六进制字符串表示形式,请使用float.hex()方法。

在版本2.4中更改:以前只返回无符号文字。

身份证件(对象)

返回对象的“标识”。这是一个整数(或长整数)保证此对象在其生存期内是唯一的和恒定的。生命周期不重叠的两个对象可能具有相同的id()值。

CPython实施细节:这是内存中对象的地址。

输入([促使])

相当于eval(原始输入(提示)).

此函数不会捕获用户错误。如果输入不是语法上的有效,a语法错误将被提起。如果出现以下情况,则可能会提出其他例外情况评估期间出错。

如果读行模块已加载,然后输入()将使用它来提供精细的行编辑和历史功能。

考虑使用原始输入(_input)用于用户常规输入的功能。

整数(x=0)
整数(x个,基数=10)

返回由数字或字符串构造的整数对象x个,或返回0如果没有给出了参数。如果x个是一个数字,可以是普通整数,也可以是长整数整数或浮点数。如果x个是浮点,转换向零截断。如果参数超出整数范围,则函数返回一个长对象。

如果x个不是数字,或者如果基础x个必须是字符串或表示整数型以基数表示基础。文字可以是前面有+-(中间没有空格)和被空白。base-n文字由数字0到n-1组成,其中z(z)(或A类Z)有值10到35。默认值基础是10。允许的值为0和2–36。基-2、-8和-16的文字可以有前缀0亿/0亿,0个/0个/0,或0x个/0倍,就像代码中的整型文字一样。Base 0表示将字符串精确解释为整数文本,以便实际基数是2、8、10或16。

整数类型如所述数字类型-int、float、long、complex.

isinstance公司(对象,分类信息)

如果对象参数是分类信息论点,或(直接、间接或事实上的)子类其中。如果是,也返回true类信息是类型对象(新式类),并且对象是该类型或的对象a(直接、间接或事实上的)子类其中。如果对象不是类实例或对于给定类型的对象,函数总是返回false。如果分类信息是类或类型对象的元组(或递归地,其他这样的元组),如果对象是任何类的实例或类型。如果分类信息不是类、类型或类、类型的元组,以及这样的元组类型错误引发异常。

在版本2.2中更改:添加了对类型信息元组的支持。

发行类(,分类信息)

如果返回true是子类(直接、间接或事实上的)第页,共页分类信息.A型类被视为其自身的子类。分类信息可以是类的元组对象,在这种情况下分类信息将被选中。在任何其他案例,a类型错误引发异常。

在版本2.3中更改:添加了对类型信息元组的支持。

iter公司(o个[,哨兵])

返回迭代器对象。第一个论点的解释非常不同取决于第二个参数的存在。没有第二个参数,o个必须是支持迭代协议(__iter__()方法),或者它必须支持序列协议(__目标__()以开始的整数参数的方法0). 如果是这样不支持这些协议中的任何一个,类型错误已引发。如果第二个参数,哨兵,则o个必须是可调用对象。这个在这种情况下创建的迭代器将调用o个对的每个调用都没有参数它的next()方法;如果返回的值等于哨兵,停止迭代将引发,否则将返回该值。

第二种形式的一个有用的应用iter()就是阅读直到到达某一行。以下示例读取文件直到readline()方法返回空字符串:

具有 打开('我的数据.txt') 作为 英尺/平方英尺:
    对于 线 在里面 iter公司(英尺/平方英尺.读行, ''):
        进程行(线)

2.2版中的新增功能。

伦恩()

返回对象的长度(项目数)。参数可以是序列(例如字符串、字节、元组、列表或范围)或集合(例如字典、集合或冻结集合)。

列表([可迭代的])

返回一个列表,其项目与可迭代的项目。可迭代的可以是序列,也可以是支持迭代或迭代器对象。如果可迭代的已经是列表,副本是制作并返回,类似于可迭代[:]例如,列表('abc')收益['a', “b”, “c”]列表( (1, 2, 3) )收益[1, 2, 3].如果未给定参数,返回新的空列表,[].

列表是可变序列类型,如中所述序列类型-str、unicode、list、tuple、bytearray、buffer、xrange。有关其他容器,请参阅内置字典,设置、和元组类,以及收藏模块。

当地人()

更新并返回表示当前本地符号表的字典。自由变量由返回本地()在函数中调用时块,但不是类内块。

注释

本词典的内容不应修改;更改可能不会影响解释器使用的局部变量和自由变量的值。

长的(x=0)
长的(x个,基数=10)

返回由字符串或数字构造的长整数对象x个.如果参数是字符串必须包含任意大小的可能有符号数字,可能嵌入空白。这个基础参数的解释方式与int(),并且只能在以下情况下给出x个是字符串。否则,参数可以是普通整数、长整数或浮点数,也可以是长整数返回相同的值。浮点数转换为整数截断(接近零)。如果未给定参数,则返回0升.

长型如所述数字类型-int、float、long、complex.

地图(功能,可迭代的,...)

应用功能每个项目可迭代的并返回结果列表。如果附加可迭代的传递参数,功能一定要吃那么多参数,并并行应用于所有迭代器中的项。如果有一个iterable比另一个要扩展的iterable短项目。如果功能,假设恒等式函数;如果有是多个自变量,地图()返回由元组组成的列表包含所有iterable中的对应项(一种转置操作)。这个可迭代的参数可以是序列或任何可迭代对象;结果总是一个列表。

最大值(可迭代的[,钥匙])
最大值(参数1,参数2,*参数[,钥匙])

返回可迭代项中最大的项或两个或多个项中的最大项论据。

如果提供了一个位置参数,可迭代的必须为非空可迭代(例如非空字符串、元组或列表)。最大的项目在iterable中返回。如果有两个或多个位置参数如果提供,则返回最大的位置参数。

可选的钥匙argument指定这样的单参数排序函数用于list.sort(). The钥匙参数(如果提供)必须位于关键字中表单(例如,最大值(a,b,c,键=func)).

在版本2.5中更改:添加了对可选钥匙参数。

内存视图(对象)

返回从给定参数创建的“内存视图”对象。请参见内存视图类型了解更多信息。

最小值(可迭代的[,钥匙])
最小值(参数1,参数2,*参数[,钥匙])

返回迭代器中最小的项或两个或多个项中最小的论据。

如果提供了一个位置参数,可迭代的必须为非空可迭代(例如非空字符串、元组或列表)。最小的项目在iterable中返回。如果有两个或多个位置参数提供时,返回最小的位置参数。

可选的钥匙参数指定一个单参数排序函数,如下所示用于list.sort(). The钥匙参数(如果提供)必须位于关键字中表单(例如,min(a,b,c,键=函数)).

在版本2.5中更改:添加了对可选钥匙参数。

下一个(迭代器[,违约])

从中检索下一项迭代器通过调用它next()方法。如果违约,如果迭代器已用尽,否则停止迭代已引发。

2.6版中的新增功能。

对象

返回一个新的无特征对象。对象是所有新风格的基础类。它具有所有新样式实例通用的方法类。

2.2版新增。

在版本2.3中更改:此函数不接受任何参数。以前,它接受论点,但忽略了他们。

十月(x个)

将整数(任何大小)转换为八进制字符串有效的Python表达式。

在版本2.4中更改:以前只返回无符号文字。

打开(名称[,模式[,缓冲]])

打开文件,返回文件中描述的类型部分文件对象。如果无法打开文件,IO错误已引发。打开文件时,最好使用打开()而不是调用文件构造函数。

前两个参数与for相同标准偏差fopen():名称是要打开的文件名,并且模式是一个字符串,指示如何文件将被打开。

最常用的价值观模式“r”为了读取,“w”对于写入(如果文件已经存在,则截断该文件),以及“a”用于附加(打开了一些Unix系统意味着全部的写入附加到文件(无论当前查找位置如何)。如果模式省略,它默认为“r”。默认使用文本模式,可以转换“\n”字符到特定平台的书写和背面表示阅读。因此,在打开二进制文件时,应该附加“b”这个模式值以二进制模式打开文件,这将改进可移植性。(正在追加“b”即使在不处理二进制文件和文本文件不同,它们用作文档。)请参见下文更多可能的值模式.

可选的缓冲参数指定文件所需的缓冲区大小:0表示无缓冲,1表示线路缓冲,任何其他正值表示使用(大约)该大小的缓冲区(以字节为单位)。A否定缓冲方法使用系统默认值,通常为tty设备和已为其他文件完全缓冲。如果省略,则使用系统默认值。2

模式“r+”,“w+”“a+”打开文件进行更新(读取和写入);请注意“w+”截断文件。追加“b”到打开文件的模式二进制模式,在区分二进制文件和文本文件的系统上;没有此区别的系统,添加“b”没有效果。

除了标准fopen()模式可能是“U”“rU”.Python通常使用通用换行符支持;供应“U”将文件作为文本文件打开,但行可能会被终止通过以下任一方式:Unix终止线约定“\n”,的Macintosh约定“\r”,或Windows约定“\r\n”。所有这些外部表示被视为“\n”通过Python程序。如果Python是在没有通用换行符的情况下构建的,则支持模式具有“U”与普通文本模式相同。请注意,如此打开的文件对象也有名为的属性换行符其值为(如果没有新品),“\n”,“\r”,“\r\n”,或元组包含所看到的所有换行类型。

Python在剥离后强制该模式“U”,以开头“r”,“w”“a”.

Python提供了许多文件处理模块,包括文件输入,操作系统,操作系统路径,临时文件、和舒蒂尔.

在版本2.5中更改:引入了对模式字符串第一个字母的限制。

(c(c))

给定一个长度为1的字符串,返回一个表示Unicode代码的整数参数为unicode对象时的字符点,或参数为8位字符串时的字节。例如,单词('a')收益整数97,ord(u'\u2020’)收益8224。这与chr()对于8位字符串和unichr()用于unicode对象。如果给出unicode参数,并使用UCS2 unicode构建Python,然后字符的代码点必须在[0.65535]范围内(包括0和65535]);否则字符串长度为2,并且a类型错误将被提起。

功率(x个,[,z(z)])

返回x个权力; 如果z(z)存在,返回x个权力,z(z)(计算效率高于pow(x, 年) % z(z)). 两个论点形式pow(x, 年)相当于使用功率运算符:x年*月.

参数必须具有数字类型。对于混合操作数类型,强制适用于二进制算术运算符的规则。对于int和long int操作数结果与操作数的类型相同(强制后),除非第二个论点是否定的;在这种情况下,所有参数都转换为float浮点结果被传递。例如,10**2收益100,但是10**-2收益0.01(最后一个功能是在Python 2.2中添加的。Python 2.1及更早版本,如果两个参数都是整数类型,而第二个参数是整数类型参数为负数,引发了异常。)如果第二个参数是否定,第三个参数必须省略。如果z(z)存在,x个必须是整数类型,并且必须为非负数。(此限制是在Python 2.2中添加。在Python 2.1及更早版本中,浮动3参数功率()根据浮点舍入返回与平台相关的结果事故。)

打印(*对象,sep=“”,end=“\n”,文件=sys.stdout)

打印物体流向小溪文件,由分隔九月然后是结束.九月,结束文件,如果存在,则必须作为关键字提供论据。

所有非关键字参数都转换为如下字符串str()是和写入流,由分隔九月然后是结束.两者九月结束必须是字符串;他们也可以,这意味着使用默认值。如果没有物体给出了,打印()只会写结束.

这个文件参数必须是具有写入(字符串)方法;如果是的话不存在或,系统.tdout将使用。输出缓冲取决于文件.使用文件.flush()例如,确保,立即出现在屏幕上。

注释

由于名称为打印被认为是打印声明。要禁用语句并使用打印()函数,在中使用此future语句模块顶部:

 __未来__ 进口 打印函数

2.6版新增。

财产([fget(福盖特)[,fset(fset)[,fdel公司[,文件]]]])

返回的属性属性新式类es(类派生自对象).

fget(福盖特)是用于获取属性值的函数。fset(fset)是一个函数用于设置属性值。fdel公司是用于删除属性的函数值。而且文件为属性创建docstring。

典型的用法是定义托管属性x个:

 C类(对象):
    定义 __初始化__(自己):
        自己._x个 = 

    定义 获得x(自己):
        返回 自己._x个

    定义 机顶盒(自己, 价值):
        自己._x个 = 价值

    定义 三角洲(自己):
        德尔 自己._x个

    x个 = 财产(获得x, 机顶盒, 三角洲, “我是‘x’属性。”)

如果c(c)是的实例C类,c.x公司将调用getter,c.x公司 = 价值将调用setter并德尔 c.x公司删除器。

如果给出,文件将是属性属性的docstring。否则属性将复制fget(福盖特)的docstring(如果存在)。这使得有可能轻松创建只读属性属性()作为一个装饰工:

 鹦鹉(对象):
    定义 __初始化__(自己):
        自己._电压 = 100000

    @财产
    定义 电压(自己):
        “”“获取当前电压。”“”
        返回 自己._电压

这个@财产装饰师转动电压()方法转换为“getter”对于同名的只读属性,它为电压至“获取当前电压”

属性对象具有吸气剂,设置器,删除器方法可用作创建将相应访问器函数设置为的属性的副本装饰功能。最好用一个例子来解释这一点:

 C类(对象):
    定义 __初始化__(自己):
        自己._x个 = 

    @财产
    定义 x个(自己):
        “”“我是'x'属性。”“”
        返回 自己._x个

    @x个.设置器
    定义 x个(自己, 价值):
        自己._x个 = 价值

    @x个.删除器
    定义 x个(自己):
        德尔 自己._x个

此代码与第一个示例完全相同。确保提供与原始属性同名的其他函数(x个在这个案例。)

返回的属性对象还具有属性fget(福盖特),fset(fset)、和fdel公司对应于构造函数参数。

2.2版中的新增功能。

在版本2.5中更改:使用fget(福盖特)的docstring(如果没有)文件鉴于。

在版本2.6中更改:这个吸气剂,设置器、和删除器添加了属性。

范围(停止)
范围(开始,停止[,])

这是一个多功能函数,用于创建包含算术级数的列表。它最常用于对于循环。参数必须是简单的整数。如果参数被省略,它默认为1。如果开始参数被省略,它默认为0。完整表单返回列表普通整数的[开始, 开始 + 步骤, 开始 + 2 * 步骤, ...].如果是正数,最后一个元素是最大的开始 + * 小于停止; 如果为负数,最后一个元素是最小的开始 + * 大于停止.不得为零(否则值错误升高)。例子:

>>>范围(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>范围(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>范围(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>>范围(0, 10, )
[0, 3, 6, 9]
>>>范围(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>>范围(0)
[]
>>>范围(1, 0)
[]
原始输入([促使])

如果促使参数存在时,它被写入标准输出,但没有尾随换行符。然后,该函数从输入中读取一行,将其转换为string(去掉尾随换行符),并返回该字符串。读取EOF时,EOF错误已引发。例子:

>>> = 原始输入('--> ')
-->巨蟒飞行马戏团
>>>
“巨蟒飞行马戏团”

如果读行模块已加载,然后原始输入(_input)将使用它来提供精细的行编辑和历史功能。

减少(功能,可迭代的[,初始值设定项])

应用功能两个参数累计到可迭代的,来自从左到右,以便将iterable减少为单个值。例如,减少(λ x、, 年: x+y, [1, 2, 三, 4, 5])计算((((1+2)+3)+4)+5).左边的参数,x个,是累加值和正确的参数,,是中的更新值可迭代的.如果可选初始值设定项存在,它被放置在计算中iterable的项之前,用作iterable为空时的默认值。如果初始值设定项未给出,且可迭代的只包含一个项目,则返回第一个项目。大致相当于:

定义 减少(功能, 可迭代的, 初始值设定项=):
     = iter公司(可迭代的)
    如果 初始化器  :
        尝试:
            初始值设定项 = 下一个()
        除了 停止迭代:
            提升 类型错误('没有初始值的空序列的reduce()')
    累计值 = 初始值设定项
    对于 x个 在里面 :
        累计值 = 功能(累积值, x个)
    返回 累计值
重新加载(模块)

重新加载以前导入的模块。参数必须是模块对象,因此它以前必须已成功导入。如果您有使用外部编辑器编辑了模块源文件,并希望尝试新版本,而不离开Python解释器。返回值为模块对象(与模块参数)。

什么时候?重新加载(模块)执行时间:

  • Python模块的代码被重新编译,模块级代码被重新执行,定义一组绑定到模块中名称的新对象字典。这个初始化扩展模块的功能不被称为第二个时间。

  • 与Python中的所有其他对象一样,旧对象只有在它们的参考计数降至零。

  • 模块名称空间中的名称将更新为指向任何新的或更改的名称物体。

  • 对旧对象的其他引用(例如模块外部的名称)包括不会反弹以引用新对象,并且必须在每个命名空间中更新如果需要,它们会出现在哪里。

还有其他一些警告:

重新加载模块时,其字典(包含模块的全局变量)被保留。重新定义名称将覆盖旧的定义,所以这通常不是问题。如果模块的新版本未定义由旧版本定义的名称,即旧定义保留。如果此功能保持全局表或对象缓存-带有尝试它可以测试的语句如果需要,可以跳过表的初始化:

尝试:
    隐藏物
除了 命名错误:
    隐藏物 = {}

重新加载内置或动态加载通常不是很有用模块。重新加载系统,__主要__,内置和其他不建议使用关键模块。在许多情况下,扩展模块不是设计为多次初始化,并且可能以任意方式失败重新加载时。

如果模块使用进口…,正在呼叫重新加载()因为其他模块没有重新定义从中导入的对象-解决此问题的一种方法是重新执行这个语句,另一个是使用进口并且合格姓名(模块.*名称*)。

如果模块实例化类的实例,则重新加载定义类不会影响实例的方法定义-它们继续使用旧的类定义。派生类也是如此。

代表(对象)

返回包含对象的可打印表示形式的字符串。这是转换产生的相同值(反向引号)。有时会这样能够作为普通功能访问此操作非常有用。对许多人来说类型,此函数尝试返回将生成传递给时具有相同值的对象评估(),否则为表示是包含名称的尖括号中的字符串对象类型以及其他信息包括对象的名称和地址。一个类可以控制这个函数通过定义__报告_()方法。

颠倒的(序列)

返回倒车档迭代器.序列必须是具有__reversed__()方法或支持序列协议(__透镜_()方法和__获取项目_()带整数的方法参数开始于0).

2.4版中的新增功能。

在版本2.6中更改:添加了编写自定义的可能性__reversed__()方法。

([,非吉特])

返回浮点值四舍五入为非吉特后面的数字小数点。如果非吉特则默认为零。结果是一个浮点数。值四舍五入到最接近的倍数10的负幂非吉特; 如果两个倍数相等,从0开始进行舍入(因此例如,圆形(0.5)1圆形(-0.5)-1.0).

注释

的行为圆形()对于浮动可能会令人惊讶:例如,圆形(2.675, 2)给予2.67而不是预期的2.68.这不是一个错误:这是由于大多数小数不能精确地表示为浮点。请参见浮点运算:问题和限制对于更多信息。

设置([可迭代的])

返回新的设置对象,可以选择从中获取元素可迭代的.设置是一个内置类。请参见设置集合类型-Set,frozenset获取有关此类的文档。

对于其他容器,请参阅内置冰冻的,列表,元组、和字典类,以及收藏模块。

2.4版中的新增功能。

设置属性(对象,名称,价值)

这是的对应项获取属性()。参数是一个对象字符串和任意值。字符串可以命名现有属性或新属性。如果属性对象允许。例如,setattr(x, “foobar”, 123)等于x.foobar公司 = 123.

(停止)
(开始,停止[,])

返回a对象,表示由指定的索引集范围(开始, 停止, 步骤). The开始参数默认为。切片对象具有只读数据属性开始,停止它只是返回论点值(或其默认值)。它们没有其他明确的功能;然而,它们被Numerical Python和其他第三方扩展使用。使用扩展索引语法时,也会生成切片对象。对于例子:a[开始:停止:步骤]a[开始:停止, i)。请参阅itertools.islice()返回迭代器的替代版本。

已排序(可迭代的[,化学机械抛光[,钥匙[,颠倒]]])

从中的项目返回新的排序列表可迭代的.

可选参数化学机械抛光,钥匙、和颠倒含义与那些用于list.sort()方法(在第节中描述可变序列类型).

化学机械抛光指定两个参数的自定义比较函数(可迭代元素),根据第一个参数是否被认为小于、等于或大于第二个参数:cmp=λ x、 年: cmp(x.lower()), y.下限()。默认值值为.

钥匙指定用于提取比较的一个参数的函数每个列表元素的键:键=str.lower。默认值为(直接比较元素)。

颠倒是一个布尔值。如果设置为真的,则列表元素为就像每个比较都是反向的一样进行排序。

一般来说钥匙颠倒转换过程要快得多而不是指定等效项化学机械抛光功能。这是因为化学机械抛光为每个列表元素调用多次,同时钥匙颠倒触摸每个元素仅一次。使用functools.cmp_to_key()转换老式的化学机械抛光函数到钥匙功能。

内置排序()保证功能稳定。排序是如果它保证不改变元素的相对顺序比较相等-这有助于在多个过程中进行排序(对于例如,按部门排序,然后按薪等排序)。

有关排序示例和简短的排序教程,请参见排序方法.

2.4版中的新增功能。

静态方法(功能)

返回的静态方法功能.

静态方法不接收隐式的第一个参数。声明静态方法,使用此习惯用法:

 C类(对象):
    @静态方法
    定义 (f)(参数1, 参数2, ...):
        ...

这个@静态方法形式是一种功能装饰工–请参见功能定义了解详细信息。

可以在类上调用静态方法(例如C.f())或在实例上(例如作为C().f()).

Python中的静态方法与Java或C++中的方法类似。另请参见classmethod()对于有助于创建替代项的变量类构造函数。

有关静态方法的更多信息,请参见标准类型层次结构.

2.2版中的新增功能。

在版本2.4中更改:添加了函数修饰符语法。

字符串(对象=“”)

返回一个字符串,其中包含一个对象的可打印表示形式。对于字符串,这将返回字符串本身。repr(对象)是那个吗str(对象)并不总是试图返回可接受的评估(); 它的目标是返回可打印字符串。如果否参数,返回空字符串,''.

有关字符串的更多信息,请参见序列类型-str、unicode、list、tuple、bytearray、buffer、xrange它描述了序列功能(字符串是序列),以及特定于字符串的方法中描述的字符串方法第节。输出格式化字符串使用模板字符串或%中描述的操作员字符串格式操作第节。此外,请参阅字符串服务第节。另请参见unicode().

总和(可迭代的[,开始])

总和开始以及可迭代的从左到右并返回总计。开始默认为0. The可迭代的的项目通常是数字,并且起始值不允许是字符串。

对于某些用例,有很好的替代方案sum().连接字符串序列的首选快速方法是调用“”.join(序列)。要使用扩展精度添加浮点值,看见数学.fsum()。要连接一系列迭代器,请考虑使用itertools.chain().

2.3版中的新增功能。

超级的(类型[,对象或类型])

返回将方法调用委托给父级或同级的代理对象类别类型。这对于访问具有在类中被重写。搜索顺序与使用的顺序相同获取属性()除了类型其本身被跳过。

这个__mro公司__的属性类型列出了方法两者使用的分辨率搜索顺序获取属性()super(). The属性是动态的,只要继承层次结构是已更新。

如果省略第二个参数,则返回的超级对象将解除绑定。如果第二个参数是一个对象,isinstance(对象, 类型)必须为真。如果第二个参数是类型,issubclass(类型2, 类型)必须为真(此对于类方法很有用)。

注释

super()仅适用于新式类锿。

以下是两个典型的用例超级的。在类层次结构中单一继承,超级的可以用来引用没有显式地命名它们,从而使代码更易于维护。这个用途超级的在其他编程语言中。

第二个用例是支持动态执行环境。此用例是Python独有的在静态编译语言或仅支持单一继承。这使得实现“菱形图”成为可能其中多个基类实现相同的方法。良好的设计要求该方法在所有情况下都具有相同的调用签名(因为调用的顺序是在运行时确定的,因为该顺序会进行调整更改类层次结构,因为该顺序可以包括在运行时之前未知的兄弟类)。

对于这两种用例,典型的超类调用如下所示:

 C类(B类):
    定义 方法(自己, 参数):
        超级的(C类, 自己).方法(参数)

请注意super()作为绑定过程的一部分实现显式虚线属性查找,例如super()__getitem__(姓名).它通过实现自己的__获取属性__()搜索方法支持协作多重继承的可预测顺序的类。因此,super()对于使用语句或操作员,如super()[名称].

还要注意的是super()不限于使用内部方法。这两个参数形式精确地指定参数并使参考文献。

关于如何使用super(),请参阅super()使用指南.

2.2版中的新增功能。

元组([可迭代的])

返回一个元组,其项与可迭代的项目。可迭代的可以是序列、支持迭代的容器或迭代器对象。如果可迭代的已经是一个元组,返回时保持不变。例如,元组('abc')收益('a', “b”, “c”)元组([1, 2, 3])收益(1, 2, 3)。如果未给定参数,则返回一个新的空值元组,().

元组是一个不可变的序列类型,如中所述序列类型-str、unicode、list、tuple、bytearray、buffer、xrange。有关其他容器,请参阅内置字典,列表、和设置类,以及收藏模块。

类型(对象)
类型(名称,底座,字典)

使用一个参数,返回对象。返回值为类型对象。这个isinstance()建议使用内置功能测试对象的类型。

使用三个参数返回一个新的类型对象。这本质上是一个的动态形式声明。这个名称字符串是类名并成为__姓名__属性;这个底座元组逐项列出基类并成为__底座__属性;字典dictionary是包含类定义的命名空间身体,成为__字典__属性。例如以下两个语句创建相同的类型物体:

>>> X(对象):
...     = 1
...
>>>X = 类型(“X”, (对象,), 字典(=1))

2.2版中的新增功能。

unichr公司()

返回Unicode代码为整数的一个字符的Unicode字符串例如,unichr(97)返回字符串u'a'。这是的倒数订单()用于Unicode字符串。参数的有效范围取决于Python的配置方式–它可以是UCS2[0..0xFFFF]或UCS4[0..0x10FFFF]。值错误否则会引发。对于ASCII和8位字符串请参见chr().

2.0版新增。

unicode码(对象=“”)
unicode码(对象[,编码[,错误]])

返回的Unicode字符串版本对象使用以下模式之一:

如果编码和/或错误给出了,unicode()将解码对象它可以是8位字符串或使用编解码器的字符缓冲区编码. The编码参数是给出编码名称的字符串;如果编码未知,查找错误已引发。错误处理是根据完成错误; 这指定了对以下字符的处理输入编码中无效。如果错误“严格”(默认),a值错误出现错误时引发,而值为“忽略”原因默认忽略的错误,值为“替换”导致官员Unicode替换字符,U+FFFD系统,用于替换输入无法解码的字符。另请参见解码器模块。

如果没有给出可选参数,unicode()将模仿str()但它返回的是Unicode字符串,而不是8位字符串。更多准确地说,如果对象是Unicode字符串或子类,它将返回Unicode字符串,不应用任何附加解码。

对于提供__unicode _()方法,它将调用此方法没有参数来创建Unicode字符串。对于所有其他对象请求字符串版本或表示,然后转换为Unicode中使用编解码器进行默认编码的字符串“严格”模式。

有关Unicode字符串的更多信息,请参见序列类型-str、unicode、list、tuple、bytearray、buffer、xrange其中描述了序列功能(Unicode字符串是序列),以及中描述的字符串特定方法字符串方法第节。收件人输出格式化字符串使用模板字符串或%操作员描述在中字符串格式操作第节。此外,请参阅字符串服务第节。另请参见str().

2.0版中的新增功能。

在版本2.2中更改:支持__unicode _()补充。

变量([对象])

返回__字典__模块、类、实例的属性,或任何其他带有__字典__属性。

模块和实例等对象具有可更新的__字典__属性;然而,其他对象可能对其有写限制__字典__属性(例如,新式类使用dictproxy以防止直接的字典更新)。

没有争论,变量()行为类似于本地()。注意局部变量字典只对更新局部变量后的读取有用字典被忽略。

润智(停止)
润智(开始,停止[,])

此功能与范围(),但返回一个润智对象而不是列表。这是一个产生相同值的不透明序列类型作为相应的列表,而不是实际同时存储它们。的优势xrange()结束范围()最小(因为xrange()仍然必须在要求时创建值),除非在内存存储机器上使用非常大的范围,或者当所有范围元素从不使用(例如,当循环通常以打破). 有关xrange对象的更多信息,请参见X范围类型序列类型-str、unicode、list、tuple、bytearray、buffer、xrange.

CPython实施细节: xrange()旨在简单快捷。实施可能实施限制以实现这一点。Python的C实现将所有参数限制为本机C long(“短”Python整数),并且还要求元素的数量适合本机C long。如果需要更大的范围,可以使用itertools软件模块:islice(计数(开始, 步骤), (停止-启动+升压1+2*(步长<0))//步长).

拉链([可迭代的,...])

此函数返回元组列表,其中-第th个元组包含-每个参数序列或迭代器中的第个元素。返回的列表的长度被截断为最短参数序列的长度。当有多个长度相同的参数时,zip()类似于地图()初始参数为.有一个单间序列参数,它返回一个1元组列表。如果没有参数,则返回空列表。

保证了迭代器从左到右的求值顺序。这个使将数据系列聚类为n个长度组的习惯用法成为可能使用zip(*[iter(s)]*n).

zip()*运算符可用于解压缩列表:

>>>x个 = [1, 2, ]
>>> = [4, 5, 6]
>>>拉链的 = 拉链(x个, )
>>>拉链的
[(1, 4), (2, 5), (3, 6)]
>>>2个, y2年 = 拉链(*拉链的)
>>>x个 == 列表(2个)   == 列表(y2年)
真的

2.0版中的新增功能。

在版本2.4中更改:从前,zip()需要至少一个参数,并且zip()提出了一个类型错误而不是返回空列表。

__进口__(名称[,全局变量[,当地人[,来自列表[,水平]]]])

注释

这是一个日常Python中不需要的高级函数编程,不同于importlib.import_module().

此函数由进口声明。它可以是替换(通过导入__内置__模块并分配给__构建____导入__)为了改变进口语句,但现在使用导入通常更简单挂钩(参见蛋白胨302). 直接使用__导入_()很少见,除了在您想要导入一个仅在运行时才知道其名称的模块的情况。

函数导入模块名称,可能使用给定的全局变量当地人以确定如何在包上下文中解释名称。这个来自列表给出了应该是从给定的模块导入名称.标准实施是这样的不使用其当地人参数,并使用其全局变量只为确定的包上下文进口声明。

水平指定是使用绝对导入还是相对导入。默认值-1这表明绝对进口和相对进口都将已尝试。0表示只执行绝对导入。的正值水平指示相对于调用模块的目录__导入__().

名称变量的形式为包装.模块通常返回顶级包(直到第一个点的名称),这个模块命名者名称。但是,当非空来自列表参数是给定,由命名的模块名称返回。

例如,语句进口 垃圾邮件导致字节码类似以下代码:

垃圾邮件 = __进口__(“垃圾邮件”, 全局变量(), 当地人(), [], -1)

声明进口 垃圾邮件.ham此次通话的结果:

垃圾邮件 = __进口__('垃圾邮件.火腿', 全局变量(), 当地人(), [], -1)

注意如何__导入_()在此处返回顶级模块,因为这是绑定到名称的对象进口声明。

另一方面,声明 斯帕姆火腿 进口 鸡蛋, 香肠 作为 索斯中的个结果

_温度 = __进口__('垃圾邮件.火腿', 全局变量(), 当地人(), [“鸡蛋”, “香肠”], -1)
鸡蛋 = _温度.鸡蛋
索斯 = _温度.香肠

这里斯帕姆火腿模块从返回__导入_().从此处对象,则检索要导入的名称并将其分配给各自的名称。

如果只想按名称导入模块(可能在包中),使用importlib.import_module()导入库.

在版本2.5中更改:添加了级别参数。

在版本2.5中更改:添加了参数的关键字支持。

三。非本质内置功能

有几个内置函数不再需要学习或在现代Python编程中使用。他们被留在这里是为了维护与为旧版本Python编写的程序向后兼容。

Python程序员、培训师、学生和书籍作者应该可以自由地绕过这些函数,不必担心遗漏了一些重要的内容。

应用(功能,参数[,关键字])

这个功能参数必须是可调用对象(用户定义的或内置的函数或方法,或类对象)和参数参数必须是顺序。这个功能用调用参数作为参数列表;数字参数的长度是元组的长度。如果可选关键字参数是现在,它必须是键为字符串的字典。它指定关键字要添加到参数列表末尾的参数。打电话应用()和打电话不同函数(args),因为在这种情况下始终只有一个参数。使用应用()等于函数(*参数, **关键字).

自版本2.3以来已弃用:使用函数(*参数, **关键字)而不是应用(功能, 参数, 关键字)(参见打开参数列表的包装).

缓冲器(对象[,抵消[,大小]])

这个对象参数必须是支持缓冲区调用接口的对象(例如字符串、数组和缓冲区)。将创建新的缓冲区对象它引用了对象参数。缓冲区对象将是的开始对象(或从指定的抵消). 切片将延伸到对象(或将具有由大小参数)。

胁迫(x个,)

返回由两个转换为公共参数的数字参数组成的元组类型,使用与算术运算相同的规则。如果没有强制可能,提高类型错误.

实习生(一串)

输入一串在“interned”字符串表中,并返回interned字符串–这是一串本身或副本。内嵌字符串有助于获得如果字典中的键是interned,查找键是interned的,键比较(散列后)可以通过指针比较而不是字符串比较来完成。通常Python程序中使用的名称被自动截取,字典用于保存模块、类或实例属性的内嵌键。

在版本2.3中更改:内部字符串不是不朽的(就像Python 2.2和之前);必须保留对的返回值的引用实习生()围绕从中受益。

脚注

1

它的使用相对较少,因此不保证被制成一份声明。

2

指定缓冲区大小当前对没有setvbuf()。指定缓冲区大小的接口不是使用调用的方法setvbuf(),因为在后面调用时可能会转储内核已经执行了任何I/O,并且没有可靠的方法来确定情况就是这样。

在当前实现中,局部变量绑定通常不能受此影响,但从其他范围(如模块)检索的变量可以。这可能会改变。