_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