我有一个私有属性
的类class DoGood():
__prv = "i m private"
def __init__(self):
self.default_string = self.__prv
def say_it_aloud(self):
print self.default_string
我试图从python-cli
访问私有属性>>> from sample import DoGood
>>> obj = DoGood()
>>> obj.__prv
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: DoGood instance has no attribute '__pro'
由于私有我无法访问但是当我尝试分配一个我能够做到的值时
>>> obj.__prv = "changed in subclass"
>>> obj.say_it_aloud()
i m private
但是类对象内的值没有改变。但是为什么我能够分配它,它是否可以用于任何目的
答案 0 :(得分:2)
您正在为您为该类创建的实例分配新属性。它不会更改__prv属性的值。
print DoGood._DoGood__prv # access a private attribute.
仍将输出“我是私人”