零基礎入門學習Python(17):對象(2)

零基礎入門學習Python(17):對象(2)

在Python類中定義私有屬性只需要在變量名或函數名前加上”__”兩個下劃線,那麼這個屬性或方法就成爲私有的了。外部不能訪問類中的私有屬性,可以通過類的公有方法訪問

>>> class Test:
        __name = 'Jessica'       #在外部將變量名隱藏,可以通過調用方法從內部獲取私有變量
        def getName(self):
            print("The name is ",self.__name)
            return self.__name

>>> test1 = Test()
>>> name1 = test1.getName()
The name is  Jessica
>>> name1
'Jessica'

但是,在Python中,私有變量會被自動改成_類名__變量名的形式,即就目前,Python的私有機制其實是僞私有,所以,Python的類是沒有權限控制的,變量是可以被外部調用的

>>> test1._Test__name
'Jessica'

下面簡單介紹一個魔法方法,魔法方法即能夠在恰當的時候被自動調用的方法,被雙下劃線包圍。
__init__(self,param1,param2,…)
實例化對象時可以傳入參數,生成實例化對象時就存在了。

>>> class Test2:
        def __init__(self,name):
            self.name = name     #Python中的self就相當於C++中的this
        def getName(self):
            print("My name is %s,I am playing... " % self.name)

>>> test2 = Test2('xiuxiu')       #生成實例對象時把參數也傳遞進去
>>> test2.getName()
My name is xiuxiu,I am playing...

零基礎入門學習Python(16):對象(1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章