python无私有成员变量
2014-05-29 10:47
141 查看
python解释器将__init__函数里的__z变量转成 _classname__z了,明白规则后外部依然可以通过实力对象来访问。
In [1]: class aa:
...: def __init__(self):
...: self.x = 10
...: self.y = 11
...: self.__z = 12
...:
In [2]: a = aa()
In [3]: print a.x
10
In [4]: print a.y
11
In [5]: print a.__z
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-a90abb2fd47d> in <module>()
----> 1 print a.__z
AttributeError: aa instance has no attribute '__z'
In [6]: dir(a)
Out[6]: ['__doc__', '__init__', '__module__', '_aa__z', 'x', 'y']
In [7]: print _aa.__z
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-7-b2d0b9a63937> in <module>()
----> 1 print _aa.__z
NameError: name '_aa' is not defined
In [8]: print _aa__z
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-8-80bb4dde0a55> in <module>()
----> 1 print _aa__z
NameError: name '_aa__z' is not defined
In [9]: print a._aa__z
12
In [10]: a.__z = 14
In [11]: dir(a)
Out[11]: ['__doc__', '__init__', '__module__', '__z', '_aa__z', 'x', 'y']
In [12]: print a._aa__z
12
In [1]: class aa:
...: def __init__(self):
...: self.x = 10
...: self.y = 11
...: self.__z = 12
...:
In [2]: a = aa()
In [3]: print a.x
10
In [4]: print a.y
11
In [5]: print a.__z
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-a90abb2fd47d> in <module>()
----> 1 print a.__z
AttributeError: aa instance has no attribute '__z'
In [6]: dir(a)
Out[6]: ['__doc__', '__init__', '__module__', '_aa__z', 'x', 'y']
In [7]: print _aa.__z
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-7-b2d0b9a63937> in <module>()
----> 1 print _aa.__z
NameError: name '_aa' is not defined
In [8]: print _aa__z
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-8-80bb4dde0a55> in <module>()
----> 1 print _aa__z
NameError: name '_aa__z' is not defined
In [9]: print a._aa__z
12
In [10]: a.__z = 14
In [11]: dir(a)
Out[11]: ['__doc__', '__init__', '__module__', '__z', '_aa__z', 'x', 'y']
In [12]: print a._aa__z
12
相关文章推荐
- python无私有成员变量
- python的 public 、private成员变量、成员函数总结
- Python中定义“私有”成员变量和成员函数
- Python中的类变量和成员变量
- Python中定义“私有”成员变量和成员函数
- Python实现的用于从布局文件的id生成成员变量声明和findViewById语句的Android开发小工具
- c++ python交互之boost.python 简集之类成员变量设置
- Python 类变量,成员变量,静态变量,局部变量
- python的类变量和成员变量用法实例教程
- python中类变量,成员变量
- 使用Python类的 __init__( ) 函数定义成员变量
- Python 类中的"静态"成员变量
- python的类变量和成员变量用法实例教程
- python的类变量和成员变量
- python 类成员变量
- Python中定义“私有”成员变量和成员函数
- Python中定义“私有”成员变量和成员函数
- Python中定义“私有”成员变量和成员函数
- Python中定义“私有”成员变量和成员函数
- [Python]获取类的成员变量及临时变量