類與對象python
對象的本質也就是一個名稱空間而已,用於存放本身獨有的屬性,而類中存放的是對象共有的屬性。app
__init__會在調用類時自動觸發函數
調用類時發生兩件事:ui
1.建立一個空對象stu1spa
2.自動觸發__init__功能,將stu1以及括號內的參數一同傳入code
屬性查找對象
先從對象本身的名稱空間找,沒有則去類中找blog
綁定方法繼承
類中定義的函數是共享給對象的,並且是綁定給對象使用的內存
綁定的效果:綁定給誰,誰就來調用,誰調用就將誰當第一個參數
補充:類中定義的函數,類確實能夠使用,但大多數是給對象用的,因此須要自帶一個參數self
類即類型
python中一切皆爲對象,且python3中類與類型是一個概念,類型就是類
#類型dict就是類dict
>>> list <class 'list'> #實例化的到3個對象l1,l2,l3 >>> l1=list() >>> l2=list() >>> l3=list() #三個對象都有綁定方法append,是相同的功能,但內存地址不一樣,ID相同 >>> l1.append <built-in method append of list object at 0x10b482b48> >>> l2.append <built-in method append of list object at 0x10b482b88> >>> l3.append <built-in method append of list object at 0x10b482bc8> #操做綁定方法l1.append(3),就是在往l1添加3,絕對不會將3添加到l2或l3 >>> l1.append(3) >>> l1 [3] >>> l2 [] >>> l3 [] #調用類list.append(l3,111)等同於l3.append(111) >>> list.append(l3,111) #l3.append(111) >>> l3 [111]
對象是高度整合的產物,整合數據與專門操做該數據的方法(綁定方法)
繼承與派生
派生就是子類中新定義的屬性,子類使用中以本身的爲準
1.什麼是繼承
繼承是一種新建類的方式,新建的類爲子類,被繼承的爲父類
特徵:子類會遺傳父類的屬性,繼承是類與類之間的關係
2.爲什麼要繼承
減小代碼的冗餘
3.如何使用繼承
支持一個類同時繼承多個父類 class Foo(Parent): Parent即爲父類
python3中,若沒有繼承任何的類,默認繼承object類,2中不會默認繼承
新式類:但凡繼承了object的類及該類的子類,都是新式類
python3中的類都是新式類
經典類:沒有繼承object的類