在内的内部定义并使用,外部无法访问,以双下划线作为前作,定义后被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]:
-----------------------------------------------------------
相关文章
- 11-25Day 03 知识点[python程序运行的方式、变量、注释、内存管理、数据类型]
- 11-25Python – 同时声明具有相同值的两个变量
- 11-25详解ES6实现类的私有变量的几种写法
- 11-25python调用openstack的api,create_instance的程序解析
- 11-25python练习——斐波那契数列(交换变量的值)
- 11-25python:使用元组的多个变量
- 11-25带有变量的Python子进程调用
- 11-25如何将rfcomm shell命令的结果放入python中的变量中?
- 11-25python – 从解析的数据生成简单的RSS提要
- 11-25python 判断一个对象的变量类型