天天看點

Python面向對象程式設計之私有屬性及私有方法示例

本文執行個體講述了Python面向對象程式設計之私有屬性及私有方法。分享給大家供大家參考,具體如下:

如果有一個對象,當需要對其進行修改屬性時,有2種方法:

(1)對象名.屬性名=資料---->直接修改

(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學習扣qun:250933691,如果你也不甘平庸

,那就與我一起在編碼之外,不斷成長吧!

其實這裡不僅有技術,更有那些技術之外的東西,比如,如

何做一個精緻的程式員,而不是“屌絲”,程式員本身就是高貴的一種存在啊,難道不是嗎?[點選加入]想做你自己想成為高尚人,加油

@本文來源于公衆号:csdn2299,喜歡可以關注公衆号 程式員學府