我有一个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'
) 中得到错误。
在我的对象中使用自定义数据成员的正确方法是什么?