簡單介紹python封裝的基本知識
更新時間:2019年08月10日 08:33:38 作者:人生與戲
這篇文章主要介紹了簡單介紹python封裝的基本知識,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
python封裝簡介
1.效果圖:
對比一:
對比二:
2.學(xué)習(xí)來源代碼:
# 封裝是面向?qū)ο蟮娜筇匦灾? # 封裝指的是隱藏對象中一些不希望被外部所訪問到的屬性或方法 # 如何隱藏一個對象中的屬性? # - 將對象的屬性名,修改為一個外部不知道的名字 # 如何獲?。ㄐ薷模ο笾械膶傩?? # - 需要提供一個getter和setter方法使外部可以訪問到屬性 # - getter 獲取對象中的指定屬性(get_屬性名) # - setter 用來設(shè)置對象的指定屬性(set_屬性名) # 使用封裝,確實增加了類的定義的復(fù)雜程度,但是它也確保了數(shù)據(jù)的安全性 # 1.隱藏了屬性名,使調(diào)用者無法隨意的修改對象中的屬性 # 2.增加了getter和setter方法,很好的控制的屬性是否是只讀的 # 如果希望屬性是只讀的,則可以直接去掉setter方法 # 如果希望屬性不能被外部訪問,則可以直接去掉getter方法 # 3.使用setter方法設(shè)置屬性,可以增加數(shù)據(jù)的驗證,確保數(shù)據(jù)的值是正確的 # 4.使用getter方法獲取屬性,使用setter方法設(shè)置屬性 # 可以在讀取屬性和修改屬性的同時做一些其他的處理 # 5.使用getter方法可以表示一些計算的屬性 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()用來獲取對象的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('旺財',8) # d.say_hello() # 調(diào)用setter來修改name屬性 d.set_name('小黑') d.set_age(-10) # d.say_hello() print(d.get_age())
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法
這篇文章主要介紹了Python使用內(nèi)置json模塊解析json格式數(shù)據(jù)的方法,結(jié)合實例形式分析了Python使用內(nèi)置的json模塊實現(xiàn)json格式數(shù)據(jù)的解析、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07對pandas數(shù)據(jù)判斷是否為NaN值的方法詳解
今天小編就為大家分享一篇對pandas數(shù)據(jù)判斷是否為NaN值的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11python編程開發(fā)時間序列calendar模塊示例詳解
這篇文章主要為大家介紹了python編程開發(fā)時間序列calendar模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步早日升職加薪2021-11-11如何用tempfile庫創(chuàng)建python進(jìn)程中的臨時文件
這篇文章主要介紹了如何用tempfile庫創(chuàng)建python進(jìn)程中的臨時文件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01