原文地址:http://docs.python.org/library/functions.html
譯文:
Python提供了許多內建函數。下面按函數名字母順序一一列出並作介紹。
abs(x)
返回一個數的絕對值。參數可以是一個普通整數、長整數或浮點數。如果參數是複數, 則它的值被返回。如:若a=x+yi, 則abs(a)=sqrt(x^2+y^2)。
all(iterable)
如果可編曆對象中的所有元素都是真值,則返回True。相當於:
def all(iterable):
for element in iterable:
if not element:
return False
return True
該函數是2.5版本中新增的。
any(iterable)
只要可編曆對象中有一個元素為真值,就返回True。等價於:
def any(iterable):
for element in iterable:
if element:
return True
return False
該函數是2.5版本中新增的。
basestring()
(註:basestring是一個可調用對象。)basestring是str與unicode的父類,它是一個抽象類別,不能直接被調用或執行個體化,但可以用它來測試一個對象是否是str或unicode的執行個體: isinstance(obj, basestring),等效於isinstance(obj, (str, unicode))。
該函數是2.3版本中新增的。
bin(x)
將一個整數轉換成二進位字串。結果是一個合法的Python運算式。如果參數x不是一個整數對象(int object),它必須定義__index__()方法,並返回一個整數。
該函數是2.6版本中新增的。
bool([x])
使用標準真值測試過程(standard truth testing procedure)將一個值轉換成布爾型。如果參數x省略或為假值(如:0, Null 字元串,None),返回False;否則總是返回True。bool也是類型,它是int類型的子類。但不能從bool類型派生子類。它只有兩個執行個體:True和False。
該函數是2.21版本中新增的。
在2.3版本中有所改變:如果沒有參數傳入,函數返回False。
callable(object)
如果參數object是可調用的,返回True,否則返回False。即使函數返回True,調用該對象仍然有可能會失敗;但是如果返回False,則調用對象肯定失敗。注意:類都是可調用的(通過調用類返回一個新執行個體)。定義了__call__()方法的執行個體都是可調用的。
chr(i)
將assii碼為i的整數轉換成只包含一個字元的字串。例如:chr(97)返回字串’a’。參數i必須在0—255範圍內,否則會觸發ValueError異常。與之對應的一個函數是ord(c),它將字元轉換成整數。也可以參考一下unichr()。
classmethod(function)
該函數返回一個類方法。
類方法顯式的接收第一個參數作為類類型,就如執行個體方法接收第一個參數作為對當前執行個體的引用。可以使用下面的文法定義一個類方法:
class C:
@classmethod
def f(cls, arg1, arg2, ...): ...
@classmethod是一個函數修飾符----可以在Function definitions中查詢更多關於函數定義描述的資訊。
可以通過類(如:C.f())或執行個體(如:C().f())調用類方法。如果在衍生類別中調用父類的類方法,衍生類別對象(derived class object) 將作為第一個參數被傳入類方法。
Python類方法與C++或Java中的靜態方法有區別。可以查詢本章中對staticmethod的介紹來瞭解這些知識。
更多關於類方法的資訊,可以參考:The standard type hierarchy.
該函數是2.2版本中新增的。
在2.4版本中作了修改:添加了對函數裝飾文法的支援。
cmp(x, y)
比較兩個對象並根據比較結果返回一個整數。如果x < y, 返回一個負數,如果 x > y返回一個正數,如果x == y返回0。
compile(source, filename, mode[, flags[, dont_inherit]])
將原始碼編譯成代碼對象(code object)或AST對象。可以通過exec語句來執行代碼對象,或通過eval()來求值。參數source可以是字串或AST對象。更多關於AST對象的資訊,可以參考ast模組文檔。
參數mode指定了代碼編譯的模式。它可以是:
“exec”:程式碼片段
“eval”: 單個運算式
“single”: 單條互動式語句
選擇性參數 flags和dot_inherit控制 影響代碼編譯的將來語句。兩個參數的預設值都是0,
complex([real[, imag]])
建立一個值為 real + imag * j 的複數,或將一個字串或數字轉換為一個複數。如果第一個參數是字串,它將被作為複數解析,同時不能提供第二個參數。第二個參數不能是字串。每個參數可以是任何的數字類型(包括複數類型)。參數imag的預設值為0。如果兩個參數都省略,返回0j。
delattr(object, name)
參數是一個對象和字串。字串必須是對象屬性的名稱。函數刪除對象的屬性。如:delattr(x, “foobar”),相當於語句:del x.foobar。
與delattr對應的函數是setattr,用於設定對象的屬性。
dict([arg])
建立一個字典對象。可選的參數arg用於初始化字典項。
字典類型在Mapping Types — dict章中進行介紹。關於其他的容器,可以參考list, set,tuple,collections模組。
dir([object])
如果省略參數,函數返回局部地區內的變數列表。如果參數沒有省略,函數嘗試將該參數對象的所有合法屬性名稱儲存到列表中並返回該列表。
如果對象定義了__dir__()方法,那麼該方法將被調用,並返回屬性列表。允許對象通過實現__getattr__()和__getattribute__()方法來自訂dir()返回對象的屬性。
如果對象沒有定義__dir__(),dir()嘗試從對象的__dict__屬性(如果定義了__dict__)和對象所屬類型中擷取資訊。dir()返回的結果不必是完整的,如果對象定義了__getattr__()方法,那麼結果可能不準確。
預設的dir()實現針對不同類型的對象可能有不同的行為,它嘗試去擷取更多相關的資訊,而不是全部的資訊:
如果對象是模組對象(module object),結果清單包含所有模組中定義的屬性的名稱。
如果對象是類型或類對象,結果清單包含該類型所有的屬性名稱,包括從父類繼承的。
否則,結果清單包含對象的所有屬性名稱、對象所屬類型的屬性名稱,以及父類的所有屬性名稱。
結果清單根據屬性的名稱字母順序儲存。
>>> import struct
>>> dir() # doctest: +SKIP
['__builtins__', '__doc__', '__name__', 'struct']
>>> dir(struct) # doctest: +NORMALIZE_WHITESPACE
['Struct', '__builtins__', '__doc__', '__file__', '__name__',
'__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
'unpack', 'unpack_from']
>>> class Foo(object):
... def __dir__(self):
... return ["kan", "ga", "roo"]
...
>>> f = Foo()
>>> dir(f)
['ga', 'kan', 'roo']
divmod(a, b)
接收兩個數字(複數除外)作為參數,返回一對值:商,餘數。對於不同類型的運算元,按二進位算術運演算法則進行計算。對於普通整數與長整數,結果為:(a / b, a % b)。對於浮點數,結果為:(q, a % b),其中q = math.floor(a / b),如果q < 1,q = 1。無論如何,q * b + a % b總是非常接近於a,如果a不能整除b,那麼:0 <= abs(a % b) < abs(b)。
在2.3版本中作了修改:不贊成使用複數作為參數。
enumerate(sequence[, start=0])
返回一個enumerate對象。參數sequence必須是一個序列類型,iterator,或者其他支援編曆的對象。通過調用enumerate()返回的iterator,它的next()方法返回一個包含 計數(由參數start開始,預設值為0)和對應值 的元組。可以使用Enumerate()來擷取一個帶索引的序列:(0, seq[0]), (1, seq[1]), (2, seq[2]),...
例如:
>>> for i, season in enumerate(['Spring', 'Summer', 'Fall', 'Winter']):
... print i, season
0 Spring
1 Summer
2 Fall
3 Winter
該函數是2.3版本中新增的。
在2.6版本中,增加了start 參數。
eval(expression[, globals[, locals]])
參數expression是一個字串,可選的globals參數必須是一個字典,可選的locals必須是一個映射對象(mapping object)。
Expression參數作為一個Python運算式而被解析並求值(evaluate),它使用globals與locals字典作為全域和本地變數。globals參數的預設值為當前的全域變數。locals參數預設為globals。 如果兩個參數都省略,那麼eval()會在 當前上下文 中執行。執行過程中的異常都會被認為是語法錯誤異常。下面是使用eval的例子:
X = 1
Print eval(‘x + 1’)
expression參數也可以是一個代碼對象(通過compile()建立),如果代碼對象使用’exec’模式進行編譯(如:eval(compile(‘3 + 4’, ‘<string>’, “exec”)),eval()函數將返回None。
提示:exec()支援動態語句執行,使用execfile()來執行檔案中的語句。Globals(), locals()分別返回全域變數和局部變數的字典,它們可以在調用eval, execfile時作為參數傳入。
execfile(filename[, globals[, locals]])
這個函數與exec語句很像,但是它接收一個檔案路徑作為參數,並執行檔案中的內容。它與import語句不同:它沒有使用模組管理—它只是無條件的讀取檔案內容並執行,而沒有建立一個新的模組。
Execfile()的globals參數與locals參數的含義和eval()一樣,但函數的傳回值為None。
file(filename[, mode[, bufsize]])
file類型的建構函式,它的參數與open()方法的參數的含義一致。open()方法將在下面介紹。
當要開啟一個檔案時,通常使用open()來代替file()。file()更適合在類型測試的時候來使用(如:isinstance(f, fle))。
該函數是在此2.2版本中新增的。
filter(function, iterable)
分別對可編曆對象中的元素應用函數,將結果為True的元素組成新的列表並返回(不改變原有列表。)。 iterable參數可以是一個序列、一個支援編曆的容器物件、也可以是一個iterator對象。如果參數是字串類型或者tuple類型,那麼返回的結果也是原來的類型;否則它總是返回一個列表(list)類型。如果function為None,則恒等函數(identity function)被作為篩選函數(過濾掉非真值元素)
函數等效為:
function不為None: [item for item in iterable if function(item)]
Function為None: [item for item in iterable if item]
float([x])
將一個字串或數字轉換為浮點數。如果參數是字串,它可能包含符號或小數點,字串參數也可以是”+nan”,”-nan” 或”+inf”,”-info”;否則,參數必須是普通整數或長整數,或一個浮點數。浮點數將直接被返回。如果沒有提供參數,函數返回0.0。
注意:
如果參數是字串,函數可能會返回NaN( Not a Number),Infinity(無窮大),這依賴於低層的C語言庫。Float可能接收”nan”來表示一個非數字,inf和-inf來表示一個正無窮和負無窮。對於nan,”+”, “-“符號將被忽略。Float通過使用”nan”, “inf”, “-inf”來表示NaN, 正無窮,負無窮。
format(value[, format_spec])
按指定格式表示一個值。對格式的解析依賴於值參數。有一套標準的格式文法用於大部分Python內建類型。
注意:
Format(value, format_spec)僅僅調用value.__format__(format_spec)。
該函數是2.6版本中新增的。
frozenset([iterable])
Return a frozenset object, optionally with elements taken from iterable. The frozenset type is described in Set Types — set, frozenset.
For other containers see the built in dict, list, and tuple classes, and the collections module.
New in version 2.4.
getattr(object, name[, default])
擷取對象指定屬性的值。參數name必須是一個字串,如果name為對象中某個屬性的名字,該屬性的值將被返回。例如:getattr(x, “foobar”)等效於x.foobar。如果屬性名稱字不存在,參數default將被返回。如果函數名不存在且沒有提供default參數,將觸發AttributeError異常。
globals()
返回當前模組的全域變數字典。(如果在方法或函數中調用globals(),返回的是定義該方法或函數的模組的全域變數字典,而不是調用該函數或方法的所在的模組(的全域變數字典))
hasattr(object, name)
判斷對象是否存在指定名字的屬性。(hasattr通過調用getattr(object, name),根據是否拋出異常來判斷屬性名稱是否存在)
hash(object)
返回對象的雜湊值。雜湊值是整數。它被應用於字典的鍵,在尋找的時候進行快速比較。數值對象的雜湊值與值相同(即使他們有不同的類型,如:
Hash(1.0) == 1.0 #True
hash(1.0) == hash(1) #True)
help([object])
調用系統協助。(該函數可以與系統進行互動)。如果沒有提供參數,互動式協助系統協助將在解析器控制台上啟動。如果參數是一個字串,它將作為模組、函數、類型、方法、關鍵字或檔案主題的名稱查詢,並將相關協助資訊顯示到控制台上;如果參數是其他類型的對象,對象的協助資訊將建立(並顯示在控制台上)。
該函數通過site模組被添加到內建命名域內。
該函數是在2.2版本中新增的。
hex(x)
擷取一個整數的十六進位字串表示。結果是一個合法的Python運算式。
2.4版本之前只返回一個無符號字面值。
id(object)
返回對象的標識符(identity)。標識符是一個整數(或長整數),在對象生命週期內保證唯一且不會改變。不重疊範圍內的兩個對象可能會有一樣的標識符。(當前實現中,標識符返回對象在記憶體中的地址。)
input([prompt])
相當於eval(raw_input(prompt))
警告:
該函數無法保證使用者輸入的內容是合法的,它期望一個合法的Python運算式作為輸入,如果輸入有語法錯誤,將觸發SyntaxError。在求值期間出現的其他錯誤也會觸發相應的異常。(另一方面,在寫一些快速指令碼作為進階應用程式時,這個函數非常有用。)
如果已經載入了readline模組,input()函數將使用該模組提供複雜的行編輯和記載功能。
應當考慮使用raw_input()函數來擷取使用者的一般性輸入。
int([x[, radix]])
將一個字串或數值轉換為一個普通整數。如果參數是字串,那麼它可能包含符號和小數點。參數radix表示轉換的基數(預設為10進位),它可以是[2,36]範圍內的值,或者0。如果為0,系統將根據字串的內容來解析。如果提供了參數radix,但參數x並不是一個字串,將拋出TypeError異常;否則,參數x必須是數值(普通整數,長整數,浮點數)。通過捨去小數來轉換浮點數。如果結果超出了普通整數的表示範圍,一個長整數被返回。如果沒有提供參數,函數返回0。
關於整數類型,可以參考:Numeric Types — int, float, long, complex.
isinstance(object, classinfo)
如果對象是類型的執行個體,或該類型衍生類別的執行個體,則返回True;如果參數classinfo是類型對象(type object)同時參數object是類對象或衍生類別的對象,也返回True。(譯者註:如:isinstance(A, type(A)))。如果參數object不是類執行個體或不是給定類型的執行個體,函數將返回False。
如果參數classinfo不是一個類,類型或 關於類、類型的元組(譯者註:如:(ClassA, ClassB)),或其他相關元組,將觸發TypeError異常。
在2.2版本中添加了對 類型資訊元組 的支援。
issubclass(class, classinfo)
如果參數class是參數classinfo的子類,返回True。一個類被認為是它自己的子類(譯者註:issubclass(ClassA, ClassA)返回True)。參數classinfo可以是多個類對象(class object)的元組,在這種情況下,元組中的每個類都會被檢查。
iter(o[, sentinel])
返回一個iterator對象。該函數對於第一個參數的解析依賴於第二個參數。如果沒有提供第二個參數,參數o必須是一個集合對象,支援編曆功能(__iter__()方法)或支援序列功能(__getitem__()方法,參數為整數,從0開始),如果不支援這兩種功能,將觸發TypeError異常。如果提供了第二個參數,參數o必須是一個可調用對象。在這種情況下建立一個iterator對象,每次調用iterator的next()方法來無參數的調用o,如果傳回值等於參數sentinel,觸發StopIteration異常,否則將返回該值。
該函數是2.2版本中新增的。
len(s)
返回對象的長度。參數可以是序列類型(字串、元組或列表)或映射類型(如字典)。
list([iterable])
list的建構函式。參數iterable是可選的,它可以是序列,支援編譯的容器物件,或iterator對象。該函數建立一個 元素值,順序與 參數iterable一致的列表。如果參數iterable是一個列表,將建立該列表的一個拷貝並返回,就像語句iterable[:]。例如:list(‘abc‘)返回[‘a’, ‘b’, ‘c’],list((1, 2, 3))返回[1, 2, 3]。如果沒有提供參數,返回一個空的列表:[]。
locals()
更新並返回一個表示當前局部變數的字典。
警告:
不要修改locals()返回的字典中的內容;改變可能不會影響解析器對局部變數的使用。
在函數體內調用locals(),返回的是自由變數(Free variables)。修改自由變數不會影響解析器對變數的使用。不能在類地區內返回自由變數。
long([x[, radix]])
將字串或數字轉換為長整數。如果參數是字串,那麼它可能包含符號。參數radix的意義與int()函數中的一樣,只有在參數x是字串的情況下,才給出。否則x必須是普通整數、長整數或浮點數,如果是長整數,其值將直接被返回。通過捨去小數來將浮點數轉換成長整型。如果沒有提供參數,函數返回0L。
map(function, iterable, ...)
對參數iterable中的每個元素都應用function函數,並將結果作為列表返回。 如果有多個iterable參數,那麼function函數必須接收多個參數,這些iterable中相同索引處的元素將並行的作為function函數的參數。如果一個iterable中元素的個數比其他少,那麼將用None來擴充該iterable使元素個數一致。如果有多個iterable且function為None,map()將返回由元組組成的列表,每個元組包含所有iterable中對應索引處值。參數iterable必須是一個序列或任何可編曆對象,函數返回的往往是一個列表(list)。
max(iterable[, args...][, key])
如果只提供iterable參數,函數返回可編曆對象(如:字串,元組或列表)中最大的非空元素。如果提供了多個參數,那麼傳回值最大的那個參數。
選擇性參數key是單參數的排序函數。如果提供key參數,必須是以具名引數的形式,如:max(a, b, c, key = fun)----我不清楚參數key有什麼作用?
在2.5版本中修改:添加了可選的key參數。
min(iterable[, args...][, key])
如果只提供iterable參數,函數返回可編曆對象(如:字串,元組或列表)中最小的非空元素。如果提供了多個參數,那麼傳回值最小的那個參數。
選擇性參數key是單參數的排序函數。如果提供key參數,必須是以具名引數的形式,如:max(a, b, c, key = fun)----我不清楚參數key有什麼作用?
next(iterator[, default])
通過調用iterator的next()方法擷取下一個元素。當iterator編曆完的時候,如果提供default參數,該default參數將被返回,否則觸發StopIteration異常。
該函數是2.6版本中新增的。
object()
擷取一個新的、無特性(featureless)對象。Object是所有類的基類。它提供的方法將在所有的類型執行個體中共用。
該函數是2.2版本中新增的。
2.3版本之後,該函數不接收任何參數。以前可以接收參數,但這些參數都被忽略。
oct(x)
將一個整數轉換為八進位字串。結果是一個合法的Python運算式。
在2.4版本之前,該函數只返回無符號的字面值。
open(filename[, mode[, bufsize]])
開啟一個檔案,返回一個file對象。如果檔案無法開啟,將觸發IOError 異常。應該使用open()來代替直接使用file類型的建構函式開啟檔案。
參數filename表示將要被開啟的檔案的路徑字串;參數mode表示開啟的模式,最常用的模式有:‘r’表示讀文字檔,’w’表示寫文字檔,’a’表示在檔案中追加常值內容。Mode的預設值是’r’。 在操作文字檔時,’/n’可能會被轉換為特定平台相關的表示。
當操作的是二進位檔案時,只要在模式值上添加’b’。這樣提高了程式的可移植性。(有些作業系統不區別文字檔和二進位檔案,這些檔案都被當作文檔(document)來處理,這時把模式設為二進位模式就比較合適。)
選擇性參數bufsize定義了檔案緩衝區大小。0表示不緩衝 (unbuffered);1表示行緩衝(line buffered);任何其他正數表示使用該大小的緩衝區;負數表示使用系統預設緩衝區大小,對於tty裝置它往往是行緩衝,而對於其他檔案往往完全緩衝。如果參數被省略,使用系統預設值。
ord(c)
將字元(長度為1的字串)轉換為整數。例如:ord(‘a’)返回整數97,ord(u’/u2020’)返回8224。
pow(x, y[, z])
返回x的y次方;如果提供了參數z,則返回x的y次方,並對z進行模數操作(比pow(x, y) % z效率更高)。也可以使用x**y來代替pow(x, y)
print([object, ...][, sep=' '][, end='n'][, file=sys.stdout])
列印對象到流檔案(stream file),通過sep參數分開,以end參數結束。參數sep, end, file必須以關鍵字參數的形式出現,如果提供的話。
所有非關鍵字參數都被轉換為字串並寫入到流,通過sep分開,將end附加到末尾。參數sep和end都是字串,也可以為None,這意味著使用預設值。如果沒有對象,print()直接將end寫入。
File參數必須是一個包含write(string)方法的對象。如果沒有該方法或對象為None,使用預設值sys.stdout
注意:在預設情況下,print方法是不可使用的,因為它往往被認為是print語句。為了使用print()方法同時並禁用print語句,要在模組的開始處添加如下語句:
from __future__ import print_function
該函數是2.6版本中新增的。
property([fget[, fset[, fdel[, doc]]]])
...
range([start], stop[, step])
這是一個通過的,用於建立包含連續算術值的列表(list)。它經常被用於for迴圈。參數必須是普通整數。參數 step的預設值為1,參數start的預設值為0。全參數調用該函數將返回一個普通整數列表[start, start + step, start + 2 * step, ...]。如果參數step為正數,列表中的最後一個元素將是最大值,為start + i * step,小於stop;如果step為負數,列表中最後一個元素將是最小值,為start – I * step,大於stop。參數step不能為0(否則將觸發ValueError異常)。
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
raw_input([prompt])
如果提供了prompt參數,它將被寫入到標準輸出(結尾沒有分行符號),函數然後從輸入中讀一行資料,轉換成字串(去除結尾的分行符號)並返回。當讀取EOF時,將觸發EOFError異常。下面是一個例子:
>>> s = raw_input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"
reduce(function, iterable[, initializer])
...
reload(module)
重新載入先前置入(imported)的模組。參數是模組對象,所以該模組必須在之前成功的匯入。Reload在這種情況下非常有用:程式在運行過程中模組原始碼發生改變,讓Python解析器擅自載入最新版本代碼。函數的傳回值是模組對象。
當reload(module)執行時:
Python模組的代碼被重新編譯,模組層級(module-level)的代碼被重新執行,定義新的對象信綁定到模組字典,而擴充模組的初始化函數將不會被再次調用。
就如Python中其他對象一樣,原有模組的一些對象只有在其引用計算為0的時候才會被回收。
模組內的名稱被更新,用於表明任何新的或改變的對象。
對原有對象的引用不會重新綁定引用到新的對象。
repr(object)
返回一個對象的字串表示。有時可以使用這個函數來訪問操作。對於許多類型來說,repr()嘗試返回一個字串,eval()方法可以使用該字串產生對象;否則用角括弧括起來的,包含類名稱和其他額外資訊(如:對象名字,在記憶體中的地址)的字串被返回。類可以通過定義__repr__()方法來控制它的對象的輸出。
reversed(seq)
返回一個逆序的iterator對象。參數seq必須是一個包含__reversed__()方法的對象或支援序列操作(__len__()和__getitem__())
該函數是2.4版本中新增的。
round(x[, n])
對參數x的第n+1位小數進行四捨五入,返回一個小數位元為n的浮點數。參數n的預設值是0。結果是一個浮點數。如:round(0.5) 結果 為 1.0
set([iterable])
...
setattr(object, name, value)
該方法與getattr()相對應。參數分別是一個對象、字串和值。字串可能是一個存在的屬性名稱或一個新的屬性名稱,該函數將值賦給對象的屬性。如:setattr(x, ‘fllbar’, 123)等價於x.foobar = 123。
slice([start], stop[, step])
...
sorted(iterable[, cmp[, key[, reverse]]])
...
staticmethod(function)
返回一個靜態方法。
靜態方法不顯式的接收第一個參數(作為類型)。使用下面的文法聲明一個靜態方法:
lass C:
@staticmethod
def f(arg1, arg2, ...): ...
可以在類中調用靜態方法(如:C.f()),,也可以在對象上調用(如:C().f())。
Python中的靜態方法與java或C++中的靜態方法類似,更詳細的資訊,可以參考:classmethod()
該函數是2.2版本中新增的。
str([object])
擷取對象的字串表示。對於字串參數,函數直接返回。Repr()與str()之間的不同在於:str()返回的字串可能不被eval()所接收求值,而僅僅返回一個可列印的字串。如果沒有提供參數,Null 字元串將被返回。
sum(iterable[, start])
先計算可編曆對象中的元素之和,再與start相加。參數start的預設值為0。可編曆對象的元素通過是數字,不能為字串。通過調用’’.join(sequence)可以快速正確的串連一個字串序列。注意:sum(range(n), m)等價於:reduce(operator.add, range(n), m)。對高精度的浮點數進行求和時,可以使用math.fsum().
super(type[, object-or-type])
返回一個可以通過委託方法調用父類型或兄弟類型的代理對象。在重寫方法中使用它來訪問父類中的虛方法,
tuple([iterable])
返回一個元組,它的元素值及元素的順序與iterable中的一致。參數iterable可以是一個序列,或者iterator對象。如果iterable本身也是一個元組,它將被原封不支的返回。例如:tuple(‘abc’)將返回(‘a’, ‘b’, ‘c’),tuple([1, 2, 3])將返回(1, 2, 3)。如果沒有提供參數,函數返回一個空元組。
type(object)
返回對象的類型。傳回值是類型對象(type object),建議使用isinstance()來檢測對象的類型。含有三個參數的type()函數是type類的建構函式,在下面詳細介紹。
type(name, bases, dict)
返回一個類對象。它本質上是一個動態形式的類定義語句(可以動態建立新類型)。參數name作為__name__的值,為新類型的名稱,參數bases是一個元組,表示新類型的父類,作為__bases__的值;參數dict是一個字典,表示類範圍成員的定義,作為__dict__的值。例如:下面兩段語句建立同一類型對象:
>>> class X(object):
... a = 1
...
>>> X = type('X', (object,), dict(a=1))
unichr(i)
返回整數的unicode字串。如:unichar(97)返回字串 u’a’。
unicode([object[, encoding[, errors]]])
...
vars([object])
如果沒有提供參數,返回一個表示當前局部變數表的字典。如果輸入一個模組對象、類對象或類執行個體對象(或其他任何含有__dict__屬性的東西),返回一個表示該物件變數表的字典。
xrange([start], stop[, step])
這個函數與range()非常像,但它返回一個xrange對象而不是列表。這是一個不透明的序列對象,可以產生像對應列表一樣的值但不同時儲存它們(在記憶體裡)。
Xrange相比於range的優點在於:使用xrange佔用的記憶體更少。
zip([iterable, ...])
函數返回一個元組列表,其中第n個元組的元素由所有參數序列的第n個元素組成。返回列表的長度等於參數中長度最短的序列的長度。如果多個參數序列的長度一致,那麼zip() 如果只有一個參數,那麼返回的序列中,元素的長度為1。如果沒有提供參數,返回一個空列表。
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zipped)
>>> x == x2, y == y2
True
該函數是2.0版本中新增的。
在2.4版本之前,調用zip()時至少要提供一個參數,否則將觸發TypeError異常。
__import__(name[, globals[, locals[, fromlist[, level]]]])
這是一個進階函數,在平常編程中很少用到。
使用import語句載入模組時會調用該函數。
很少直接使用__import__()函數,除非模組的名稱在運行時得到。