-
Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量。
-
可有时候需要用到私有变量,因此诞生了__。
-
变量名或函数名前加上 ”__“两个下划线,那么这个函数或变量就会为私有的了。
-
私有意味着只有内部能使用,对外部隐藏。
-
在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername来使用。
在外部,使用原来的私有成员的名字时,会提示找不到。(达到了隐藏的效果)
class Tester(object):
__foo = "hi"
>>> t = Tester()
>>> t._Tester__foo
'hi'
class Tester(object):
... def __init__(self):
... self.__foo = "hi"
...
>>> t=Tester()
>>>t._Tester__foo
'hi'