Python 封裝

說明

封裝的概念,其實應該在繼承那篇就先說明(阿因為那時候不知道這個行為就是封裝...)

總之,封裝的概念是指外部的使用者可以呼叫內部的方法實作,不用考慮內部的運作

另外一個是如果在方法上面加上__前綴詞來命名變數,外部就不可使用。

<接續剛剛狗和鴨的 Code 繼續做>

操作流程

Code

class Animal:
    name = ''
    # __private = ''
    def __init__(self, name):
        self.name = name
    def walk(self):
        print('walking')
    def eat(self):
        print('eating')

class Dog(Animal):
    def __init__(self, name):
        super().__init__(name)
    def walk(self):
        print('{0} using foot walk'.format(self.name))
    def eat(self):
        print('{0} eat bone'.format(self.name))
    def sleep(self):
        print("i am sleeping")

class Duck(Animal):
    def __init__(self, name):
        super().__init__(name)
    def walk(self):
        print('{0} using two foot walk'.format(self.name))
    def eat(self):
        print('{0} eat worm'.format(self.name))

    def __sleep(self):
        print("i am sleeping")

A = Dog('Dog')
A.eat()
A.walk()
A.sleep()

B = Duck('Duck')
B.eat()
B.walk()
B.sleep()

輸出

詳細說明

從輸出可以看出,在 dog 的 sleep 方法中是可以被實作的

但是在 duck 的 sleep 方法 前面有加 __ 

這個是前綴詞,使得 sleep 不能實作,所以後面會產生報錯(在輸出的下半張圖)

參考:

留言