獲取對(duì)象信息:
使用type()
type():判斷對(duì)象類型
type(任意類型參數(shù)) >>> 返回參數(shù)類型
type(任意類型參數(shù)) == type(任意類型參數(shù)) >>> 返回bool值,判斷兩個(gè)參數(shù)是不是同一個(gè)類型
使用isinstance()
isinstance():判斷對(duì)象類型,一般需要傳入兩個(gè)參數(shù)
isinstance(任意類型參數(shù),參數(shù)類型) >>>返回bool值,判斷該參數(shù)是不是屬于這個(gè)參數(shù)類型
isinstance()判斷的是一個(gè)對(duì)象是否是該類型本身,或者位于該類型的父繼承鏈上
使用dir()
dir(一個(gè)對(duì)象)
如果要獲得一個(gè)對(duì)象的所有屬性和方法,可以使用dir()函數(shù),它返回一個(gè)包含字符串的list
類似__xxx__的屬性和方法在Python中都是有特殊用途的,比如__len__方法返回長度。在Python中,如果你調(diào)用len()函數(shù)試圖獲取一個(gè)對(duì)象的長度,實(shí)際上,在len()函數(shù)內(nèi)部,它自動(dòng)去調(diào)用該對(duì)象的__len__()方法。
操作一個(gè)對(duì)象的狀態(tài):
lower():返回小寫的字符串
upper():返回大寫的字符串
getattr(obj, 'y'):獲取對(duì)象的y屬性(可以傳入一個(gè)default參數(shù),如果屬性不存在,就返回默認(rèn)值 getattr(obj, 'y', 404) ? ? 若該對(duì)象沒有y,就返回404)
setattr(obj, 'y', 19):設(shè)置對(duì)象的y屬性
hasattr(obj, 'x'):判斷對(duì)象有沒有x屬性
小結(jié)
通過內(nèi)置的一系列函數(shù),我們可以對(duì)任意一個(gè)Python對(duì)象進(jìn)行剖析,拿到其內(nèi)部的數(shù)據(jù)。要注意的是,只有在不知道對(duì)象信息的時(shí)候,我們才會(huì)去獲取對(duì)象信息。