首页 > 解决方案 > 为什么我们在 python 类中使用 super()?

问题描述

我遇到了一个像下面这样的例子,

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 的面向对象编程不是很熟悉。

标签: pythonpython-3.x

解决方案


由于您从此处的 parenthasies 中的另一个类继承,因此在某些情况下还必须初始化class Model(tf.keras.Model):父类或超类。由于您有两个__init__函数可以知道您正在访问哪个函数,因此 super 用于说使用父类__init__方法。


推荐阅读