【发布时间】:2018-09-20 11:20:00
【问题描述】:
我对 python 很陌生,只是想了解面向对象编程是如何在其中工作的。我读过在变量前面使用双 _(下划线)表示它的值不能在类之外更改。为了测试它,我尝试运行以下 sn-p。
class a:
def set_value(self,x):
self.__x = x
def get_value(self):
return self.__x
a_obj = a()
a_obj.set_value(10)
a_obj.__x = 1
print a_obj.__x
print a_obj.get_value()
这个输出是
1
10
我不明白这种行为。当我检查两个变量的 id 时,它会有所不同。我知道有一个名称修饰的概念,但我不完全理解我正在做的事情是否确实如此。
【问题讨论】:
标签: python python-2.7 oop