python __ - WBowam/wbowam.github.com GitHub Wiki

Date: 2014-07-7 Title: python中 __(双下划线)的作用 Tags: Python Category: It

  • 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'
⚠️ **GitHub.com Fallback** ⚠️