Python面向?qū)ο蟪绦蛟O(shè)計(jì)之私有屬性及私有方法示例
本文實(shí)例講述了Python面向?qū)ο蟪绦蛟O(shè)計(jì)之私有屬性及私有方法。分享給大家供大家參考,具體如下:
如果有一個(gè)對(duì)象,當(dāng)需要對(duì)其進(jìn)行修改屬性時(shí),有2種方法:
(1)對(duì)象名.屬性名=數(shù)據(jù)---->直接修改
(2)對(duì)象名.方法名()----->間接修改
為了更好的保障屬性安全,不能隨意修改,一般處理方式為:
(1)將屬性定義為私有屬性
(2)添加一個(gè)可以調(diào)用的方法,供調(diào)用,也就是間接調(diào)用屬性
首先我講解下私有屬性的例子:
1.下面這個(gè)是一個(gè)錯(cuò)誤的例子:
class People(object): def __init__(self,name): self.__name=name def getName(self): return self.__name def setName(self,newName): if len(newName) >= 5: self.__name = newName else: print("error:名字長(zhǎng)度需要大于或者等于5") xiaoming = People("monkey") print(xiaoming.__name)
這是錯(cuò)誤的,因?yàn)橹苯虞敵隽怂接械膶傩?,是不可以的,解決方式為:或者刪掉object也行
class People(object): def __init__(self,name): self.__name=name def getName(self): return self.__name def setName(self,newName): if len(newName) >= 5: self.__name = newName else: print("error:名字長(zhǎng)度需要大于或者等于5") xiaoming = People("monkey") print(xiaoming.getName()) #這樣就是通過調(diào)用方法來間接調(diào)用屬性
下面講解一個(gè)私有方法的例子:
class Dog: #私有方法,在方法名前面加上兩個(gè)下劃線 def __test1(self): print("1") def test2(self): print("2") dog=Dog() dog.__test1() #報(bào)錯(cuò) dog.test2() #正確
私有方法是不能直接調(diào)用的
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python正則表達(dá)式實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能示例
這篇文章主要介紹了Python正則表達(dá)式實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能,涉及Python正則判定及數(shù)值計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2019-05-05Python中OpenCV?Tutorials?20??高動(dòng)態(tài)范圍成像的實(shí)現(xiàn)步驟
這篇文章主要介紹了OpenCV?Tutorials?20?-?高動(dòng)態(tài)范圍成像,本文還給大家展示了一種稱為曝光融合的替代方法,它可以產(chǎn)生低動(dòng)態(tài)范圍的圖像,需要的朋友可以參考下2022-06-06對(duì)python3 sort sorted 函數(shù)的應(yīng)用詳解
今天小編就為大家分享一篇對(duì)python3 sort sorted 函數(shù)的應(yīng)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實(shí)現(xiàn)查找兩個(gè)字典相同點(diǎn)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)查找兩個(gè)字典相同點(diǎn)的方法,涉及Python常見集合運(yùn)算操作技巧,需要的朋友可以參考下2018-02-02python實(shí)現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉(zhuǎn)換方法
這篇文章主要介紹了python實(shí)現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉(zhuǎn)換方法,涉及Python針對(duì)文件操作與編碼轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-08-08Python 爬蟲學(xué)習(xí)筆記之正則表達(dá)式
正則表達(dá)式是用來匹配字符串非常強(qiáng)大的工具,在其他編程語言中同樣有正則表達(dá)式的概念,Python同樣不例外,利用了正則表達(dá)式,我們想要從返回的頁面內(nèi)容提取出我們想要的內(nèi)容就易如反掌了。2016-09-09