Наследовать переменные из родительского класса - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь понять, как наследовать переменные от родительского класса.

У меня есть два класса (упрощенный, но тот же принцип):

class Database(object):

    def __init__(self, post, *args, **kwargs):
        self.post = post

        self.report()

    def report(self):
        #... obtain variables from post ...
        self.database_id = self.post['id']

        #... save data to database



class PDF(Database):

    def __init__(self, post,  *args, **kwargs):
        Database.__init__(self, post, *args, **kwargs)

       #... if i try to access self.database_id now, it returns an error ...
       print(self.database_id)

экземпляр сценария:

        Database(request.POST)
        PDF(request.POST)

Я пытался просто создать экземпляр CreatePDF, так как я думал, что строка Database.__init__(self, post, *args, **kwargs) будет классом Database, но это тоже не работает.

Я пытаюсь найти самый питонский способ сделатьунаследовать.Очевидно, я могу получить self.database_id из сообщения, переданного в PDF (), однако я не вижу смысла делать это дважды, если я могу использовать наследование.

Спасибо

1 Ответ

0 голосов
/ 07 июня 2018

Использование:

class PDF(Database):
    def __init__(self, post, *args, **kwargs):
        # Stuff
        super().__init__(post, *args, **kwargs)

Правильный подход к созданию экземпляра унаследованного класса заключается в вызове super (). init (args), который в этом случае вызывает базу данных. init из-за порядка разрешения методов.

См. http://amyboyle.ninja/Python-Inheritance

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...