为什么我们在python类中使用super()?

时间:2019-11-29 15:34:15

标签: python python-3.x

我遇到了如下示例,

class Model(tf.keras.Model):
    def __init__(self, vocab_size, embedding_dim, dim, batch_sz):
        super(Model, self).__init__()
        self.dim = dim
        self.embedding = Embedding(vocab_size, embedding_dim)
        self.lstm = LSTM(self.enc_units,
                         recurrent_initializer='glorot_uniform')

为什么我们要使用super(Encoder, self).__init__()?我对使用python进行面向对象的编程不是很熟悉。

1 个答案:

答案 0 :(得分:2)

由于您是从父类的class Model(tf.keras.Model):继承过来的,因此在某些情况下,父类或超级类也必须初始化。由于您有两个__init__函数来知道您要访问的是哪个函数,因此通常使用父类__init__方法。