
在默认情况下,Python中的成员函数和成员变量都是公开的(public),在Python中没有类似public、private等关键词来修饰成员函数和成员变量。虽然Python并没有真正的私有化支持,但可用下画线得到伪私有。
一般来说,类定义中以两个下画线[如__func()]开头的方法或变量被认为是私有属性。以这种格式定义的方法或变量一般来说应当是仅供类的内部调用的。对于以这种格式定义的私有属性,Python并没有规定强制性的访问限制,而是采用了所谓的名字改编。
以单下画线开始的成员变量(_xxx)叫作保护变量,只有类实例和子类实例能访问到这些变量。
以 双下画线 "开始的是私有成员(__xxx),只有类对象自己能访问,连子类对象也不能访问到这个数据。
前后均有一个“双下画线” (__xxx__)代表Python里特殊方法专用的标识。
这个原则的意思是不论后部的实现是方法还是属性,外部对一个属性的访问都具有唯一的标识。例如,需要对某个属性实现这样的功能:每次读取的时候都返回+1后的结果,每次写入的时候都写入-1后的结果。