我在執行Python中的borg時遇到了問題。我在this question的答案中找到了一個例子,但它不適用於我,除非我錯過了一些東西。下面的代碼:Python borg模式問題
class Config:
"""
Borg singleton config object
"""
__we_are_one = {}
__myvalue = ""
def __init__(self):
#implement the borg pattern (we are one)
self.__dict__ = self.__we_are_one
self.__myvalue = ""
def myvalue(self, value=None):
if value:
self.__myvalue = value
return self.__myvalue
conf = Config()
conf.myvalue("Hello")
conf2 = Config()
print conf2.myvalue()
我認爲這是爲了打印「Hello」,但對我來說只是打印一個空行。任何想法,爲什麼這可能是?
你爲什麼使用雙__名稱作爲屬性?一個領先的_將會使其成爲「私人」。 – 2009-04-14 14:55:57
那麼我複製了我鏈接到的其他問題的代碼。但無論如何,我認爲單個_暗示它是私人的,而double _則會導致名稱被破壞,這更強烈地暗示它真的*是私有的,儘管如果用戶被確定仍然可以訪問它。 – chrism1 2009-04-14 15:13:03