Python知識點-單雙下劃線

gaoxing1發表於2018-12-17

 

_xxxx 變數或者方法,只能用於模組本身,其他子類可以訪問,但不能被引用到其他模組去。

  比如這個變數在 1.py中不能拿到2.py中使用。

__xxxx 代表私有變數或者私有方法 只允許這個類本身訪問,例項化物件後也不能通過.__xxxxx去呼叫,子類也不能訪問,不能通過繼承方式後去這個私有變數。

“單下劃線” 開始的成員變數叫做保護變數,意思是隻有類物件和子類物件自己能訪問到這些變數;”雙下劃線” 開始的是私有成員,意思是隻有類物件自己能訪問,連子類物件也不能訪問到這個資料。

class Foo():

    def __init__(self):
        pass

    def public_method(self):
        print(`我是公共方法`)

    def __fullprivate_method(self):
        print(`我是私有方法`)

    def _halfprivate_method(self):
        print(`我是單下下劃線方法`)

#例項化Foo的一個物件

f = Foo()
f.public_method() # OK
f.__fullprivate_method() # Error occur
f._halfprivate_method() # OK

 

相關文章