python的私有变量解析

在内的内部定义并使用,外部无法訪问,以双下划线作为前作,定义后被python转为

_classname__变量名了



--------------------------------------------------------------------------------------

In [1]: class aa:

   ...: __x = 12 #私有变量_ _x

   ...: def px(self):

   ...: print 'private __x', aa.__x #内部訪问

   ...:



In [2]: a = aa()



In [3]: a.px()

private __x 12



In [4]: dir(a)

Out[4]: ['__doc__', '__module__', '_aa__x', 'px'] # map成_classname__变量名了



In [5]: a.__x = 13#实例对象a的实例变量



In [6]: dir(a)

Out[6]: ['__doc__', '__module__', '__x', '_aa__x', 'px']



In [7]: print a.__x





In [8]:In [8]: print aa.__x

---------------------------------------------------------------------------

AttributeError Traceback (most recent call last)

<ipython-input-8-34f87438b5b5> in <module>()

----> 1 print aa.__x



AttributeError: class aa has no attribute '__x'



In [9]:

-----------------------------------------------------------

上一篇:java web接收POST数据


下一篇:黄聪:WordPress 多站点建站教程(五):获取子站点用户信息(通过输入站点ID号来获取该站点的所有用户)