Подкласс выбрасывает AttributeError вместо получения свойств из суперкласса - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть классы 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 дан)

1 Ответ

0 голосов
/ 23 февраля 2019

В строке 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...