學Python程式設計開發怎樣 封裝的實現方法是什麼

2021-09-27 12:55:14 字數 1581 閱讀 8084

在python中,「封裝」是指將抽象得到的資料和行為(或功能)相結合,形成乙個有機的整體(即類)。封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過外部介面,以特定的訪問許可權來使用類的成員。

封裝原則有兩個:1)將不需要對外提供的內容都隱藏起來;2)把屬性都隱藏,提供公共方法對其訪問。

注意,封裝資料主要原因是保護私隱,將資料隱藏起來不是目的。隱藏起來然後對外提供操作該資料的介面,然後我們可以在介面附加上對該資料操作的限制,以此完成對資料屬性操作的嚴格控制。

封裝特性property

將乙個類的函式定義成特性以後,物件再去使用的時候obj.name,根本無法察覺自己的name是執行了乙個函式然後計算出來的,這種特性的使用方式遵循了統一訪問的原則。而property是一種特殊的屬性,訪問它時會執行一段功能(函式)然後返回值。

物件導向的封裝有三種方式:

【public】這種其實就是不封裝,是對外公開的。

【protected】這種封裝方式對外不公開,但對朋友(friend)或者子類(形象的說法是「兒子」,但我不知道為什麼大家不說「女兒」,就像「parent」本來是「父母」的意思,但中文都是叫「父類」)公開。

【private】這種封裝對誰都不公開。

**示例:

class foo:

definit(self,val):

self.__name=val #將所有的資料屬性都隱藏起來

@property

def name(self):

return self.__name #obj.name訪問的是self.__name(這也是真實值的存放位置)

@name.setter

def name(self,value):

if not isinstance(value,str): #在設定值之前進行型別檢查

raise typeerror(』%s must be str』 %value)

self.__name=value #通過型別檢查後,將值value存放到真實的位置self.__name

@name.deleter

def name(self):

raise typeerror(『can not delete』)

f=foo(『egon』)print(f.name)# f.name=10 #丟擲異常』typeerror: 10 must be str』del f.name #丟擲異常』typeerror: can not delete』

python並沒有在語法上把它們三個內建到自己的class機制中,在c++裡一般會將所有的所有的資料都設定為私有的,然後提供set和get方法(介面)去設定和獲取,在python中通過property方法可以實現。乙個靜態屬性property本質就是實現了get、set、delete三種方法。

總之,python開發的前景是非常好的。如果確實不知道怎麼辦,可以選擇專業的學習方式,先去試聽看看,只有這樣,你才能知道這個學習班是否真正適合你,才能知道你是不是適合學python技術,才不至於浪費時間、金錢和精力。

python怎樣程式設計 怎麼自學python程式設計

如何自學python程式設計?一堆的python教程卻感覺無從下手呢?我想這應該是很多python初學者正在糾結的問題。今天想要分享給大家的是如何自學python程式設計,學習這件事 還真不是人人都擅長的,有的人拿到一堆的python教程卻感覺無從下手,有的人卻靠這一堆python教程入門,這就是差...

Python 物件導向程式設計 封裝

物件導向程式設計的三大特性 封裝將屬性和方法書寫到類的裡面的操作即為封裝 封裝可以為屬性和方法新增私有許可權 繼承子類預設繼承父類的所有屬性和方法 子類可以重寫父類的屬性和方法 多型傳入不同的物件,產生不同的結果 一.封裝 1.init 方法的作用,初始化物件 在建立乙個物件時預設被呼叫,不需要手動...

學python程式設計 北京梨園python兒童學程式設計

北京童程童美少兒程式設計教育,18年程式設計教學經驗,達內教育集團旗下少兒程式設計培訓品牌,為青少兒提供創意啟蒙 人工智慧程式設計 智慧型機械人程式設計 資訊學奧賽為核心的趣味程式設計課.教學模式線上線下一體 線下50多座城市,250多家校區,一站式少兒程式設計教育機構.隨著程式設計火熱,越來越多的...