封裝——“隱藏一切可以隱藏的實現細節,只向外界暴露(提供)簡單的編程接口”。
在上節的 Student 類中,每個實例就擁有各自的 name 和 age 這些數據。我們可以通過函數來訪問這些數據,比如打印一個學生的年齡:
>>> def print_age(std):
... print('%s: %s' % (std.name, std.age))
...>>> print_age(stu1)
小白菜: 21
但是,既然Student實例本身就擁有這些數據,要訪問這些數據,就沒有必要從外面的函數去訪問,可以直接在Student類的內部定義訪問數據的函數,這樣,就把“數據”給封裝起來了。這些封裝數據的函數是和
Student類本身是關聯起來的,我們稱之為類的方法:
class Student(object): def __init__(self, name, age):
self.name = name
self.age = age def print_age(self):
print('%s: %s' % (self.name, self.age))
這樣一來,我們從外部看Student類,就只需要知道,創建實例需要給出name和age,而如何打印,都是在Student類的內部定義的,這些數據和邏輯被“封裝”起來了,調用很容易,但卻不用知道內部實現的細節。
免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。