Python標準庫---三、內置函數(G-H-I-J-K)

上一篇文章: Python標準庫---二、內置函數(D-E-F)
下一篇文章: Python標準庫---四、內置函數(L-M-N-O)

內置函數:

clipboard.png

26. getattr(object, name[, default])

返回對象命名屬性的值。name 必須是字符串。若是該字符串是對象的屬性之一,則返回該屬性的值。例如, getattr(x, 'foobar') 等同於 x.foobar。若是指定的屬性不存在,且提供了 default 值,則返回它,不然觸發 AttributeError。

27. globals()

返回表示當前全局符號表的字典。這老是當前模塊的字典(在函數或方法中,不是調用它的模塊,而是定義它的模塊)。

28. hasattr(object, name)

該實參是一個對象和一個字符串。若是字符串是對象的屬性之一的名稱,則返回 True,不然返回 False。(此功能是經過調用 getattr(object, name) 看是否有 AttributeError 異常來實現的。)

29. hash(object)

返回該對象的哈希值(若是它有的話)。哈希值是整數。它們在字典查找元素時用來快速比較字典的鍵。相同大小的數字變量有相同的哈希值(即便它們類型不一樣,如 1 和 1.0)。

註解 若是對象實現了本身的 __hash__() 方法,請注意,hash() 根據機器的字長來截斷返回值。另請參閱 __hash__()。數據庫

30. help([object])

啓動內置的幫助系統(此函數主要在交互式中使用)。若是沒有實參,解釋器控制檯裏會啓動交互式幫助系統。若是實參是一個字符串,則在模塊、函數、類、方法、關鍵字或文檔主題中搜索該字符串,並在控制檯上打印幫助信息。若是實參是其餘任意對象,則會生成該對象的幫助頁。

請注意若是在函數的形參列表中出現了斜槓 (/),則它在發起調用 help() 的時候意味着斜槓以前的均爲僅限位置形參。 更多相關信息,請參閱 有關僅限位置形參的 FAQ 條目。segmentfault

該函數經過 site 模塊加入到內置命名空間。函數

在 3.4 版更改: pydoc 和 inspect 的變動使得可調用對象的簽名信息更加全面和一致。spa

31. hex(x)

將整數轉換爲以「0x」爲前綴的小寫十六進制字符串。若是 x 不是 Python int 對象,則必須定義返回整數的 __index__() 方法。一些例子:code

>>> hex(255)
'0xff'
>>> hex(-42)
'-0x2a'

若是要將整數轉換爲大寫或小寫的十六進制字符串,並可選擇有無「0x」前綴,則可使用以下方法:orm

>>> '%#x' % 255, '%x' % 255, '%X' % 255
('0xff', 'ff', 'FF')
>>> format(255, '#x'), format(255, 'x'), format(255, 'X')
('0xff', 'ff', 'FF')
>>> f'{255:#x}', f'{255:x}', f'{255:X}'
('0xff', 'ff', 'FF')
另見 format() 獲取更多信息。

另請參閱 int() 將十六進制字符串轉換爲以 16 爲基數的整數。對象

註解 若是要獲取浮點數的十六進制字符串形式,請使用 float.hex() 方法。遞歸

32. id(object)

返回對象的「標識值」。該值是一個整數,在此對象的生命週期中保證是惟一且恆定的。兩個生命期不重疊的對象可能具備相同的 id() 值。

CPython implementation detail: This is the address of the object in memory.生命週期

33. input([prompt])

若是存在 prompt 實參,則將其寫入標準輸出,末尾不帶換行符。接下來,該函數從輸入中讀取一行,將其轉換爲字符串(除了末尾的換行符)並返回。當讀取到 EOF 時,則觸發 EOFError。例如:ip

>>>
>>> s = input('--> ')  
--> Monty Python's Flying Circus
>>> s  
"Monty Python's Flying Circus"

若是加載了 readline 模塊,input() 將使用它來提供複雜的行編輯和歷史記錄功能。

34. class int([x])

class int(x, base=10)

返回一個使用數字或字符串 x 生成的整數對象,或者沒有實參的時候返回 0 。若是 x 定義了 __int__(),int(x) 返回 x.__int__() 。若是 x 定義了 __trunc__(),它返回 x.__trunc__() 。對於浮點數,它向零舍入。

若是 x 不是數字,或者有 base 參數,x 必須是字符串、bytes、表示進製爲 base 的 整數字面值 的 bytearray 實例。該文字前能夠有 + 或 - (中間不能有空格),先後能夠有空格。一個進製爲 n 的數字包含 0 到 n-1 的數,其中 a 到 z (或 A 到 Z )表示 10 到 35。默認的 base 爲 10 ,容許的進制有 0、2-36。二、八、16 進制的數字能夠在代碼中用 0b/0B 、 0o/0O 、 0x/0X 前綴來表示。進製爲 0 將安照代碼的字面量來精確解釋,最後的結果會是 二、八、十、16 進制中的一個。因此 int('010', 0) 是非法的,但 int('010') 和 int('010', 8) 是合法的。

整數類型定義請參閱 數字類型 --- int, float, complex 。

在 3.4 版更改: 若是 base 不是 int 的實例,但 base 對象有 base.__index__ 方法,則會調用該方法來獲取進制數。之前的版本使用 base.__int__ 而不是 base.__index__。

在 3.6 版更改: 您可使用下劃線將代碼文字中的數字進行分組。

在 3.7 版更改: x 如今只能做爲位置參數。

35. isinstance(object, classinfo)

若是 object 實參是 classinfo 實參的實例,或者是(直接、間接或 虛擬)子類的實例,則返回 true。若是 object 不是給定類型的對象,函數始終返回 false。若是 classinfo 是對象類型(或多個遞歸元組)的元組,若是 object 是其中的任何一個的實例則返回 true。 若是 classinfo 既不是類型,也不是類型元組或類型的遞歸元組,那麼會觸發 TypeError 異常。

36. issubclass(class, classinfo)

若是 class 是 classinfo 的子類(直接、間接或 虛擬 的),則返回 true。classinfo 能夠是類對象的元組,此時 classinfo 中的每一個元素都會被檢查。其餘狀況,會觸發 TypeError 異常。

37. iter(object[, sentinel])

返回一個 iterator 對象。根據是否存在第二個實參,第一個實參的解釋是很是不一樣的。若是沒有第二個實參,object 必須是支持迭代協議(有 __iter__() 方法)的集合對象,或必須支持序列協議(有 __getitem__() 方法,且數字參數從 0 開始)。若是它不支持這些協議,會觸發 TypeError。若是有第二個實參 sentinel,那麼 object 必須是可調用的對象。這種狀況下生成的迭代器,每次迭代調用它的 __next__() 方法時都會不帶實參地調用 object;若是返回的結果是 sentinel 則觸發 StopIteration,不然返回調用結果。

另請參閱 迭代器類型。

適合 iter() 的第二種形式的應用之一是構建塊讀取器。 例如,從二進制數據庫文件中讀取固定寬度的塊,直至到達文件的末尾:

from functools import partial
with open('mydata.db', 'rb') as f:
    for block in iter(partial(f.read, 64), b''):
        process_block(block)
上一篇文章: Python標準庫---二、內置函數(D-E-F)
下一篇文章: Python標準庫---四、內置函數(L-M-N-O)
相關文章
相關標籤/搜索