Python學習之旅(十七)

finsom發表於2018-11-28

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...`)

子類獲得了父類的全部功能,同時子類也可以增加自己的方法

一個類可以是一個或多個類的子類

當子類和父類有相同的方法時,在程式碼執行的時候會呼叫子類的該方法,父類的那個相同的方法則被覆蓋了

多型

多型指“事物有多種形態”,可以對不同的物件使用同樣的操作(繼承)

相關文章