python基礎19 -------面向對象終結篇(介紹python對象中各種內置命令)
一、isinstance()和issubclass()命令
1、isinstance(對象,類型)
用來判定該對象是不是此類型或者說是該對象是不是此類的對象,返回結果為True和False,如圖所示。
註:在python3中類和類型做了統一,都叫做類。
2、issubclass(對象(子類),對象(父類))
用來判定該對象是不是該父類的子類,返回的結果為True或False,如圖所示。
二、反射
1、什麽是反射?
反射就相當於程序能檢測,訪問和修改他本身狀態和行為的一種能力,相當於自省。
2、python面向對象中的反射是通過字符串的形式操作對象的相關屬性。因為python中一切事物都是對象,所以都可以使用反射。
3、類和對象中的反射(自省)。
3.1hasattr(object,name)
用來判斷該類或對象中是否有name這個屬性,返回的結果為True或者是False。
3.2getattr(object,name,none)
用來獲取該類或對像的name屬性,如果有返回正確結果,沒有則報錯。
3.3setattr(object,屬性名,屬性值)
用來添加該類或對象的屬性。
4.3defattr(object,name)
用來刪除該類或對象的屬性。
4.5、以上四個反射的方法傳入的值都是字符串的形式,就相對與操作類或對象所對應的字典的key和value。
其好處如下圖:
4.6反射的好處:實現可插拔機制和動態導入模塊。
三、__str__內置函數
1、該內置函數的主要目的是改變對象的顯示。
2、示例:
註釋:不加__str__,執行print(egon)時按照正常方式顯示為綁定方法,加上__srt__後就會顯示為__str__內指定的內容了。四、描述符。
1、__del__:當該對象被刪除時執行此函數內的操作。
2、eg:
註釋:對象被刪除的方式有兩種,一種是手動刪除後執行__del__函數,另一種是讀取完該對象時執行__del__函數。
python基礎19 -------面向對象終結篇(介紹python對象中各種內置命令)