Python基礎知識(16):物件導向程式設計(Ⅰ)
類和例項
類是抽象的模板
例項是根據類建立出來的一個個具體的物件,每個物件都擁有相同的方法,但各自的資料可能不同。
類可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去
方法就是與例項繫結的函式,和普通函式不同,方法可以直接訪問例項的資料
通過關鍵字“class”定義類,“Person”是類名,object
表示該類是從哪個類繼承下來的
class person(object): def hello(name): return "Hello,%s"% name
根據Person
類建立出Person的例項,建立例項是通過類名+()實現的
>>> bar=person()>>> bar.hello() `Hello,<__main__.person object at 0x000002106B85C0B8>`
變數bart
指向的就是一個Person的例項,後面的0x000002106B85C0B8是記憶體地址
資料封裝
通過在例項上呼叫方法,我們就直接操作了物件內部的資料,但無需知道方法內部的實現細節
訪問限制
隱藏內部的複雜結構,讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線__
在Python中,例項的變數名如果以__
開頭,就變成了一個私有變數(private),只有內部可以訪問,外部不能訪問
繼承
定義一個class的時候,可以從某個現有的class繼承,新的class稱為子類(Subclass),而被繼承的class稱為基類、父類或超類(Base class、Super class)
class Animal(object): def play(self): print(`It`s show time!`) def run(self): print(`Are you ready?`) class Dog(Animal): def run(self): print(`wang wang wang...`) class Cat(Animal): def run(self): print(`miao miao miao...`)
子類獲得了父類的全部功能,同時子類也可以增加自己的方法
一個類可以是一個或多個類的子類
當子類和父類有相同的方法時,在程式碼執行的時候會呼叫子類的該方法,父類的那個相同的方法則被覆蓋了
多型
多型指“事物有多種形態”,可以對不同的物件使用同樣的操作(繼承)