91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學Python編程開發怎樣 封裝的實現方法是什么

發布時間:2020-07-17 07:02:14 來源:網絡 閱讀:554 作者:千鋒鄭州 欄目:編程語言

學Python編程開發怎么樣?封裝的實現方法是什么?封裝,即隱藏對象的屬性和實現細節,僅對外公開接口。封裝思想在編程工作中非常重要,是每個程序員的基本功。下面千鋒小編就給大家講解一下封裝原理及實現方法。


學Python編程開發怎樣 封裝的實現方法是什么



在Python中,“封裝”是指將抽象得到的數據和行為(或功能)相結合,形成一個有機的整體(即類)。封裝的目的是增強安全性和簡化編程,使用者不必了解具體的實現細節,而只是要通過外部接口,以特定的訪問權限來使用類的成員。

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

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

封裝特性property

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

面向對象的封裝有三種方式:

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

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

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

代碼示例:

class Foo:

def __init__(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技術,才不至于浪費時間、金錢和精力。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

门头沟区| 开江县| 宣威市| 陇川县| 勐海县| 烟台市| 汪清县| 大关县| 伊金霍洛旗| 武川县| 芜湖县| 永安市| 资源县| 龙川县| 天峻县| 沙田区| 德清县| 莲花县| 兖州市| 淮滨县| 高青县| 宣化县| 黎平县| 江安县| 南靖县| 资中县| 阿拉善左旗| 麻栗坡县| 曲阳县| 双流县| 峨山| 邳州市| 巫溪县| 元朗区| 八宿县| 山东| 沛县| 连城县| 宜兴市| 珲春市| 永兴县|