我有一個類Foo
其中包含Bar
類型的數據項。我無法制作一個廣義的「默認」Bar.__init__()
- 將Bar
對象傳遞給Foo.__init__()
方法。聲明類對象數據類型
如何告訴Python我想要這種類型的數據倉庫?
class Foo:
# These are the other things I've tried, with their errors
myBar # NameError: name 'myBar' is not defined
Bar myBar # Java style: this is invalid Python syntax.
myBar = None #Assign "None", assign the real value in __init__. Doesn't work
#####
myBar = Bar(0,0,0) # Pass in "default" values.
def __init__(self, theBar):
self.myBar = theBar
def getBar(self):
return self.myBar
這個工作,當我傳入「默認」的值如圖所示。但是,當我打電話getBar
,我做而不是找回我在Foo.__init__()
函數中通過的一個 - 我得到「默認」值。
b = Bar(1,2,3)
f = Foo(b)
print f.getBar().a, f.getBar().b, f.getBar().c
該吐出0 0 0
,不1 2 3
,就像我期待的。
如果我不打擾聲明myBar
變量,我在getBar(self):
方法(Foo instance has no attribute 'myBar'
)中出現錯誤。
什麼是在我的對象中使用自定義數據存儲的正確方法?
聽起來像這個問題是你的Bar類而不是Foo。那是什麼課程? – 2012-08-10 14:41:17