以下代码:
class MyClass():
def test(self):
self.__x = 0
def __setattr__(self, name, value):
print name
def __getattr__(self, name):
print name
raise AttributeError(name)
x = MyClass()
x.test()
x.__y
输出:
_MyClass__x
__y
Traceback (most recent call last):
...
AttributeError: __y
该文档完全没有帮助,说明“名称”是“属性的名称”,但由于某种原因,它会有所不同,具体取决于您是设置它还是获取它。
我想知道的是:
- 我在这里做一些根本错误的事情吗?
- 我如何
x
在第一种情况下而不是_MyClass__x
?