在父类本身中使用“super()”,为什么?

2024-05-16 14:40:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉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)

Tags: 方法self概念定义initlayerstf编程
2条回答

我建议您阅读关于python3中super()方法的文章,这很棘手,特别是对于多重继承(即使它不是case ehere),How does Python's super() work with multiple inheritance?

BahdanauAttention继承自tf.keras.Model,这意味着它的init中的super调用实际上调用了tf.keras.Modelinit方法。你知道吗

还有一件事: 由于是Python 3,因此不需要向super调用传递任何参数:

super().__init__()

相关问题 更多 >