6.23 自我總結 面向對象的高階 1.isinstance/type/issubclass 1.type 顯示對象的類,但是不會顯示他的父類 2.isinstance 會顯示的對象的類,也會去找對象的父類,填寫參數是對象,類isinstance(對象,類)如果對象屬於後面的類會報Ture,反之Fa ...
6.23 自我總結
面向對象的高階
1.isinstance/type/issubclass
1.type
顯示對象的類,但是不會顯示他的父類
2.isinstance
會顯示的對象的類,也會去找對象的父類,填寫參數是對象,類isinstance(對象,類)如果對象屬於後面的類會報Ture,反之False
3.issubclass
與isinstance 相似不過他填寫的參數是類與類
4.總結
來說:type(對象)不會認為子類是一種父類類型;isinstance(對象,類)會認為子類是一種父類類型。
2.反射(hasattr,getattr,setattr,delattr)
反射就是通過字元串來操作類或者對象的屬性
反射本質就是在使用內置函數,其中反射有以下四個內置函數:
1. hasattr:判斷一個方法是否存在與這個類中 2. getattr:根據字元串去獲取obj對象里的對應的方法的記憶體地址,加"()"括弧即可執行 3. setattr:通過setattr將外部的一個函數綁定到實例中 4. delattr:刪除一個實例或者類中的方法
1.hasattr
用法: print(hasattr(對象,對象的方法或者特征),)後面內容必須為字元串的格式,如果有返回True,沒有返回False
2.getattr
用法: print(getattr(對象,對象的方法或者特征)),後面內容必須為字元串的格式,後面的內容必須對象有的,也返回其特征對應的內容
3.setattr
用法:setattr(YwY,',對象的方法或者特征,對應的值) , 如果沒有該特征或者方法會新增,如果有則替換
4.delattr
用法:delattr(YwY,',對象的方法或者特征),刪除對象擁有的方法或者特征