私有属性变量不能从对象外部访问,而只能通过存取器方法
class Secretive:
def __inaccessible(self):
print("Bet you can't see me ...")
def accessible(self):
print("The secret message is:")
self.__inaccessible()
>>> s = Secretive()
>>> s.__inaccessible()
Traceback (most recent call last):
File "", line 1, in
AttributeError: Secretive instance has no attribute '__inaccessible'
>>> s.accessible()
The secret message is:
Bet you can't see me ..
现在从外部不能访问 __inaccessible ,但在类中(如 accessible 中)依然可以使用它
如果你不希望名称被修改,又想发出不要从外部修改属性或方法的信号,可用一个下划线打
头。这虽然只是一种约定,但也有些作用。例如, from module import * 不会导入以一个下划线打头的名称