关于属性的问题

大家好
我已经开始尝试属性.
2.5文档中的示例使用单个和
属性内部表示形式的双重下调.我
正在提交文件错误,但后来我检查了2.6个文档
在线,我看到它已经修复了,使用单个下划线
始终.
恕我直言,在整个过程中使用双重下划线会更有意义.我
认为使用财产的要点是防止直接
访问属性.使用单个下划线,您可以访问它
您将属性名称前缀为单个下划线,从而绕过
"属性"中的逻辑.
这是一个有效的评论,还是它属于"我们是
这里的所有成年人?
在实验时,我遇到了以下好奇心.
我知道,将类属性在上面的属性上
很难在外部访问该属性.这是一个简单的
例子 -
.... def __init __(self,x):
.... self.x = x
.... self .__ y = 123
.... def get_y(self):
....返回自我.__ y
99
123
attributeError:'test'对象没有属性'__y'
我很惊讶我可以做以下事情 -
456
123
这并不重要,但是我很想知道发生了什么事
内部.
弗兰克·米尔曼

# 回答1


弗兰克·米尔曼(Frank Millman)写道:
不要"阻止​​访问",而要像"添加行为".
后者.而且" __"并不能提供太多保护(如
我们将在下面看到).
... def __init __(self,x):
... self.x = x
... self .__ y = 123
... def get_y(self):
...返回自我.__ y
99
123
attributeError:'test'对象没有属性'__y'
我很惊讶我可以做以下事情 -
456
123
这并不重要,但是我很想知道发生了什么事
内部.
暗示:
['_test__y',...,'__y','get_y','x']
123
456

标签: python

添加新评论