Python面向對象程序設計之私有屬性及私有方法示例
本文實例講述了Python面向對象程序設計之私有屬性及私有方法。分享給大家供大家參考,具體如下:
如果有一個對象,當需要對其進行修改屬性時,有2種方法:
(1)對象名.屬性名=數(shù)據(jù)---->直接修改
(2)對象名.方法名()----->間接修改
為了更好的保障屬性安全,不能隨意修改,一般處理方式為:
(1)將屬性定義為私有屬性
(2)添加一個可以調用的方法,供調用,也就是間接調用屬性
首先我講解下私有屬性的例子:
1.下面這個是一個錯誤的例子:
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:名字長度需要大于或者等于5") xiaoming = People("monkey") print(xiaoming.__name)
這是錯誤的,因為直接輸出了私有的屬性,是不可以的,解決方式為:或者刪掉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:名字長度需要大于或者等于5") xiaoming = People("monkey") print(xiaoming.getName()) #這樣就是通過調用方法來間接調用屬性
下面講解一個私有方法的例子:
class Dog: #私有方法,在方法名前面加上兩個下劃線 def __test1(self): print("1") def test2(self): print("2") dog=Dog() dog.__test1() #報錯 dog.test2() #正確
私有方法是不能直接調用的
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python中OpenCV?Tutorials?20??高動態(tài)范圍成像的實現(xiàn)步驟
這篇文章主要介紹了OpenCV?Tutorials?20?-?高動態(tài)范圍成像,本文還給大家展示了一種稱為曝光融合的替代方法,它可以產生低動態(tài)范圍的圖像,需要的朋友可以參考下2022-06-06對python3 sort sorted 函數(shù)的應用詳解
今天小編就為大家分享一篇對python3 sort sorted 函數(shù)的應用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python cookbook(數(shù)據(jù)結構與算法)實現(xiàn)查找兩個字典相同點的方法
這篇文章主要介紹了Python實現(xiàn)查找兩個字典相同點的方法,涉及Python常見集合運算操作技巧,需要的朋友可以參考下2018-02-02python實現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉換方法
這篇文章主要介紹了python實現(xiàn)JAVA源代碼從ANSI到UTF-8的批量轉換方法,涉及Python針對文件操作與編碼轉換的相關技巧,需要的朋友可以參考下2015-08-08