小白學Python之第十二天

獲取對象信息

使用type()

1.判斷對象類型

2.判斷一個變量指向函數(shù)或類

3.type()返回的是Class類型,

4.判斷一個對象是否是函數(shù),要用types模塊中定義的常量。

使用isinstance()

1.可以判斷對象類型,判斷的是一個對象是否是該類型本身或是位于該類型的父繼承鏈上。

2.能用type()判斷的也可以用isinstance()判斷,但總是優(yōu)先使用后者,因為可以將指定類型及其子類“一網(wǎng)打盡”

3.可以判斷一個變量是否是某些類型的一種

使用dir()

可以獲取一個對象的所有屬性和方法,返回的是一個包含字符串的list。

其他方法

在Python中,類似__xx__的屬性和方法都是有特殊用途的,比如__len__方法返回長度。如果你調(diào)用len()函數(shù)獲取一個對象的長度,實際上,在len()內(nèi)部,它自動去調(diào)用該對象的__len__()方法,所以下面這兩種求長度的方法是等價的:

lower()返回小寫的字母串

getattr()獲取屬性

setattr()設置屬性

hasattr()判斷屬性是否存在

舉例

然后測試該對象的屬性:

如果獲取不存在的屬性,將會返回AttributeError的錯誤:

可以傳入一個default參數(shù),如果屬性不存在,就返回默認值

也可以獲取方法:

注意:只有在不知道對象信息時,我們才會獲取對象信息。

除了獲取對象信息我們還可以用hasasttr()來判斷,一個對象是不是有某種方法。

舉例:判斷fp對象是不是存在read方法,如果存在,則該對象是一個流,如果不存在,則無法讀取。

注意:在python中,根據(jù)鴨子類型,有read()方法,不代表該fp對象是一個文件流,它可能是一個網(wǎng)絡流,也可能是內(nèi)存中的一個字節(jié)流,但只要有read()方法返回的有效圖像數(shù)據(jù),就不影響讀取圖像的功能。

實例屬性和類屬性

1.在python中,給實例綁定屬性是通過實例變量或者self變量

2.可以直接在class中定義屬性,這種屬性,歸student類所有,但所有實例都可以訪問到。

舉例

注意:從例子中看出來,實例屬性和類屬性不要用相同名字命名,因為相同名字的實例屬性會屏蔽掉類屬性。

提早手工,回去睡覺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容