Python添加参数/属性做派生类'构造函数

时间:2015-08-02 20:27:06

标签: python class

我有一个班级Record

class Record(object):
    def __init__(self, id=None, url=None, time= None, user=None, input_dict=None):
        if input_dict:
            self.from_dict(input_dict)
        else:
            self.id = id
            self.url = url
            self.time = time
            self.user = user

    def from_dict_internal(self, input_dict):
        #creates a record using data from a dictionary
        self.id = input_dict.get('id')
        self.url = input_dict.get('url')
        self.time = input_dict.get('time')
        self.user = input_dict.get('user')

    def from_dict(self, input_dict):
        return self.from_dict_internal()

我想用一个额外的属性 - referrer创建一个派生类Page。我不知道怎么去做,因为我试过这个:

class Page(Record):
    def __init__(self):
        Record.__init__(self)
        self.referrer = referrer

    def from_dict(self, input_dict):
        self.from_dict_internal()
        self.referrer = input_dict.get('referrer')

然而,Pycharm在页面构造函数中保留了referrer的下划线,其中包含未解析引用的原因

1 个答案:

答案 0 :(得分:0)

您收到错误,因为referrer未在任何地方声明或传递到 init 方法。您还应该传入Record()类使用的相同数据。

    def __init__(self, id=None, url=None, time= None, user=None, input_dict=None, referrer=None):
        Record.__init__(self, id, url, time, user, input_dict)
        self.referrer = referrer
    ....