我试图了解python以下类的类属性__value和value之间的区别。
class WithClass ():
def __init__(self, val = "Bob"):
self.__value = val
def my_func(self):
print(self.value)
a = WithClass()
print(a.__value)
b = WithClass("Sally")
print(b.__value))
以上代码给出错误“ AttributeError:WithClass实例没有属性'__value'”。但是下面的代码不会给出任何错误。
class WithClass ():
def __init__(self, val = "Bob"):
self.value = val
def my_func(self):
print(self.value)
a = WithClass()
print(a.value)
b = WithClass("Sally")
print(b.value))
两个属性的声明之间有什么区别?任何了解Python中“ __”的重要性的资源将不胜感激。
答案 0 :(得分:0)
在类变量前面添加两个下划线会执行“名称修改”,从而有效地使变量对外界具有私有性(因此,类外部代码对其进行更改并不容易)。可以在python documentation中查看有关它的更多信息。