在内的内部定义并使用,外部无法訪问,以双下划线作为前作,定义后被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]:
-----------------------------------------------------------
相关文章
- 01-21Python小代码_14_交换 2 个变量的 3 种方式
- 01-21python小白入门基础(九:变量的缓存机制)
- 01-21python import-ed变量尽管正在更改,但保持相同的值
- 01-21python-故意将变量放到调用者作用域内的函数
- 01-21python – PyMC观察到一组随机变量的数据
- 01-21Day 03 知识点[python程序运行的方式、变量、注释、内存管理、数据类型]
- 01-21Python – 同时声明具有相同值的两个变量
- 01-21详解ES6实现类的私有变量的几种写法
- 01-21python调用openstack的api,create_instance的程序解析
- 01-21python练习——斐波那契数列(交换变量的值)