从父类继承变量

时间:2018-06-07 15:29:03

标签: python oop

我正在尝试研究如何从父类继承变量。

我有两个类(简化但原理相同):

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类,但这也不起作用。

我正在努力找到最蟒蛇的继承方式。我显然可以从传递给PDF()的post dict中获取self.database_id,但是如果我可以使用继承,我没有看到这样做两次的重点。

由于

1 个答案:

答案 0 :(得分:-3)

使用:

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

实例化继承类的正确方法是调用super()。 init (args),在这种情况下调用Database。 init ,因为方法解析顺序

请参阅http://amyboyle.ninja/Python-Inheritance