我有一个ConfTest
和SubConfigTest
的类,看起来像这样:
class ConfTest():
config = {
'account': Account
}
def __init__(self,
account):
self.account = account
...
class SubConfigTest(ConfTest):
def __init__(self):
super(SubConfigTest, self).__init__(account=self.account)
self.path = install_test(self.ver_config)
我希望SubConfigTest
具有ConfTest
的所有属性。
运行程序时出现此错误:
super(SubConfigTest, self).__init__(account=self.account,
AttributeError: 'SubConfigTest' object has no attribute 'account'
我要去哪里错了?我觉得我必须在account
中的某个地方声明SubConfigTest
,但我不怀疑如何或在何处。我之所以只添加它是因为,如果我忽略了它,则会收到一条错误消息:
super(SubConfigTest, self).__init__()
TypeError: init ()恰好接受2个参数(给定1个参数)
答案 0 :(得分:1)
在第super(SubConfigTest, self).__init__(account=self.account)
行中,在调用基类的account=self.account
之前对__init__
的一部分进行评估,这是定义self.account = account
的原因,这就是发生错误的原因。您可能忘记了将account
作为参数传递给SubConfigTest.__init__
:
class SubConfigTest(ConfTest):
def __init__(self, account):
super(SubConfigTest, self).__init__(account=account)
self.path = install_test(self.ver_config)