我是python编程的新手,对python中的oops概念感到困惑。我知道super()用于使用父类中定义的方法,但我不明白为什么父类本身使用super()关键字。
class BahdanauAttention(tf.keras.Model):
def __init__(self, units):
super(BahdanauAttention, self).__init__()
self.W1 = tf.keras.layers.Dense(units)
self.W2 = tf.keras.layers.Dense(units)
self.V = tf.keras.layers.Dense(1)发布于 2019-05-07 16:03:08
BahdanauAttention继承自tf.keras.Model,这意味着它的init中的super调用实际上调用了tf.keras.Model的init方法。
还有一件事:从Python3开始,您不需要向super调用传递任何参数:
super().__init__()发布于 2019-05-07 16:07:21
我建议你阅读关于Python3中super()方法的文章,它很棘手,特别是多重继承(即使它不是这里的实例),How does Python's super() work with multiple inheritance?。
https://stackoverflow.com/questions/56018036
复制相似问题