本章描述了一些基本的標準庫模塊哈踱。 任何大型 Python 程序都有可能直接或間
接地使用到這類模塊的大部分送悔。
一慢显、核心模塊介紹
1.1.內(nèi)建函數(shù)和異常
下面的這兩個模塊比其他模塊加在一起還要重要: 定義內(nèi)建函數(shù)(例如 len, int, range ...)的 _ builtin _ 模塊, 以及定義所有內(nèi)建異常的 exceptions模塊。
Python 在啟動時導入這兩個模塊, 使任何程序都能夠使用它們欠啤。
1.2. 操作系統(tǒng)接口模塊
這類的模塊包括: 提供文件和進程處理功能的 os 模塊; 提供平臺獨立的文件名處理 (分拆目錄名, 文件名, 后綴等)的 os.path 模塊; 以及時間日期處理相關(guān)的 time/datetime 模塊荚藻。
網(wǎng)絡(luò)和線程模塊同樣也可以歸為這一個類型。
1.3. 類型支持模塊
string 模塊實現(xiàn)了常用的字符串處理洁段。math 模塊提供了數(shù)學計算操作和常量(pi, e 都屬于這類常量), cmath 模塊為復(fù)數(shù)提供了和 math 一樣的功能应狱。
1.4. 正則表達式
re 模塊為 Python 提供了正則表達式支持。正則表達式是用于匹配字符串或特
定子字符串的有特定語法的字符串模式祠丝。
1.5. 語言支持模塊
sys 模塊可以讓你訪問解釋器相關(guān)參數(shù),比如模塊搜索路徑,解釋器版本號等疾呻。
operator 模塊提供了和內(nèi)建操作符作用相同的函數(shù)除嘹。 copy 模塊允許你復(fù)制對
象, gc 模塊提供了對垃圾收集的相關(guān)控制功能。
二岸蜗、 __builtin__ 模塊
這個模塊包含 Python 中使用的內(nèi)建函數(shù)憾赁。 一般不用手動導入這個模塊; Python 會幫你做好一切。
2.1. dir函數(shù)
dir 返回由給定模塊, 類, 實例, 或其他類型的所有成員組成的列表散吵。
可以用來打印某個實例具備的函數(shù)龙考。
dir([])
output: ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove','reverse', 'sort']
2.2. vars函數(shù)
vars 函數(shù)與此相似, 它返回的是包含每個成員當前值的字典。如果你使用不帶參數(shù)的 vars , 它將返回當前局部名稱空間的可見元素(同 locals() 函數(shù) )矾睦。
>>> book = "library"
>>> pages = 250
>>> scripts = 350
>>> print(vars()['book'])
library
>>> print ("the %(book)s book contains more than %(scripts)s scripts" % vars())
the library book contains more than 350 scripts
2.3. type函數(shù)
type 函數(shù)允許你檢查一個變量的類型晦款。
>>> book = "library"
>>> pages = 250
>>> scripts = 350.0
>>> print(type(book))
<class 'str'>
>>> print(type(pages))
<class 'int'>
>>> print(type(scripts))
<class 'float'>
2.4. isinstance函數(shù)
可以使用 isinstance 函數(shù),它會檢查一個對象是不是給定類(或其子類)的實例枚冗。
isinstance() 與 type() 區(qū)別:
type() 不會認為子類是一種父類類型缓溅,不考慮繼承關(guān)系。
isinstance() 會認為子類是一種父類類型赁温,考慮繼承關(guān)系坛怪。
如果要判斷兩個類型是否相同推薦使用 isinstance()。
a = 2
>>> print(isinstance (a,int))
True
>>> print(isinstance (a,str))
False
>>> print(isinstance (a,(str,int,list))) # 是元組中的一個返回 True
True
2.5. issubclass函數(shù)
issubclass 函數(shù)與此相似, 它用于檢查一個類對象是否與給定類相同, 或者是
給定類的子類股囊。
注意, isinstance 可以接受任何對象作為參數(shù), 而 issubclass 函數(shù)在接受非
類對象參數(shù)時會引發(fā) TypeError 異常袜匿。
class A:
pass
class B(A):
pass
print(issubclass(B,A))
output: True
2.6. eval函數(shù)
eval() 函數(shù)用來執(zhí)行一個字符串表達式,并返回表達式的值稚疹。
>>> x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> print( eval("__import__ ('os').getcwd()") )
F:\projects\test