【发布时间】:2014-03-01 12:11:21
【问题描述】:
我有一个具有私有属性的类
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
但是类对象内部的值并没有改变。但是为什么我能够分配它是否有任何目的
【问题讨论】:
-
obj.__pro是一个错字。 -
您创建了一个新属性,就像您创建了
obj.someOtherAttribute = "blah"。 -
这并不是真正的复制品,尽管它是相关的。这个问题要具体得多。
-
感谢 BrenBarn ppl 阅读问题并回答,请不要浏览并回答
标签: python