mfrbuaa
在内的内部定义并使用,外部无法訪问,以双下划线作为前作,定义后被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
13

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]:
-----------------------------------------------------------

分类:

技术点:

相关文章:

  • 2021-08-17
  • 2021-09-24
  • 2021-08-17
  • 2021-08-17
  • 2021-08-17
  • 2021-11-08
猜你喜欢
  • 2022-01-25
  • 2021-07-15
  • 2021-08-17
  • 2021-08-17
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
相关资源
相似解决方案