簡(jiǎn)單介紹python封裝的基本知識(shí)
python封裝簡(jiǎn)介
1.效果圖:
對(duì)比一:
對(duì)比二:
2.學(xué)習(xí)來(lái)源代碼:
# 封裝是面向?qū)ο蟮娜筇匦灾? # 封裝指的是隱藏對(duì)象中一些不希望被外部所訪問(wèn)到的屬性或方法 # 如何隱藏一個(gè)對(duì)象中的屬性? # - 將對(duì)象的屬性名,修改為一個(gè)外部不知道的名字 # 如何獲取(修改)對(duì)象中的屬性? # - 需要提供一個(gè)getter和setter方法使外部可以訪問(wèn)到屬性 # - getter 獲取對(duì)象中的指定屬性(get_屬性名) # - setter 用來(lái)設(shè)置對(duì)象的指定屬性(set_屬性名) # 使用封裝,確實(shí)增加了類的定義的復(fù)雜程度,但是它也確保了數(shù)據(jù)的安全性 # 1.隱藏了屬性名,使調(diào)用者無(wú)法隨意的修改對(duì)象中的屬性 # 2.增加了getter和setter方法,很好的控制的屬性是否是只讀的 # 如果希望屬性是只讀的,則可以直接去掉setter方法 # 如果希望屬性不能被外部訪問(wèn),則可以直接去掉getter方法 # 3.使用setter方法設(shè)置屬性,可以增加數(shù)據(jù)的驗(yàn)證,確保數(shù)據(jù)的值是正確的 # 4.使用getter方法獲取屬性,使用setter方法設(shè)置屬性 # 可以在讀取屬性和修改屬性的同時(shí)做一些其他的處理 # 5.使用getter方法可以表示一些計(jì)算的屬性 class Dog: ''' 表示狗的類 ''' def __init__(self , name , age): self.hidden_name = name self.hidden_age = age def say_hello(self): print('大家好,我是 %s'%self.hidden_name) def get_name(self): ''' get_name()用來(lái)獲取對(duì)象的name屬性 ''' # print('用戶讀取了屬性') return self.hidden_name def set_name(self , name): # print('用戶修改了屬性') self.hidden_name = name def get_age(self): return self.hidden_age def set_age(self , age): if age > 0 : self.hidden_age = age d = Dog('旺財(cái)',8) # d.say_hello() # 調(diào)用setter來(lái)修改name屬性 d.set_name('小黑') d.set_age(-10) # d.say_hello() print(d.get_age())
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django項(xiàng)目中使用JWT的實(shí)現(xiàn)代碼
這篇文章主要介紹了Django項(xiàng)目中使用JWT的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法
這篇文章主要介紹了Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Python使用內(nèi)置的json模塊實(shí)現(xiàn)json格式數(shù)據(jù)的解析、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07對(duì)pandas數(shù)據(jù)判斷是否為NaN值的方法詳解
今天小編就為大家分享一篇對(duì)pandas數(shù)據(jù)判斷是否為NaN值的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11OpenCV Python實(shí)現(xiàn)拼圖小游戲
這篇文章主要為大家詳細(xì)介紹了OpenCV Python實(shí)現(xiàn)拼圖版小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03python編程開發(fā)時(shí)間序列calendar模塊示例詳解
這篇文章主要為大家介紹了python編程開發(fā)時(shí)間序列calendar模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步早日升職加薪2021-11-11用Python實(shí)現(xiàn)QQ游戲大家來(lái)找茬輔助工具
這是一個(gè)用于QQ大家來(lái)找茬(美女找茬)的輔助外掛,開發(fā)的原因是看到老爸天天在玩這個(gè)游戲,分?jǐn)?shù)是慘不忍睹的負(fù)4000多。本來(lái)是想寫個(gè)很簡(jiǎn)單的東西,但由于過(guò)程中老爸的多次嘲諷,逼得我不得不盡力完善,最后形成了一個(gè)小小的產(chǎn)品。2014-09-09如何用tempfile庫(kù)創(chuàng)建python進(jìn)程中的臨時(shí)文件
這篇文章主要介紹了如何用tempfile庫(kù)創(chuàng)建python進(jìn)程中的臨時(shí)文件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01