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