封裝Encapsulation

      在〈封裝Encapsulation〉中尚無留言

封裝

在類別裏, 通常會定義其他的方法進行資料的運算, 從外界只需知道有那些方法可以調用, 而不需要知道運算的內容, 這現象在物件導向裏稱為封裝, 如下代碼的getGrade()

class Pokemon(object):
    def __init__(self, name, level):
        self.level=level
        self.name=name
        print("%s出生了, 等級為%d" % (self.name, self.level))
    def getGrade(self):
        if self.level>=100:
            return "A"
        elif self.level>=50:
            return "B"
        else:
            return "C"
s1=Pokemon("Eve", 100)
print(s1.getGrade())

權限(Permission)

物件變數到目前為止, 都可以直接從外面調用, 如p1.level. 如果一下就把p1.level=5000, 那神奇寶貝的等級不就隨意的就變的很強了嗎. 所以為了讓外界無法直接調用, 就要把level變成private, 就是在變數前加二個底線, 如 __level.但請注意一下, 如果變數後面也有二個底線的話, 如 __level__, 這下又變成了public的特殊變數, 外界一樣可以直接使用. 請看下面代碼。

🔒 底下內容僅限會員閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *