В самом родительском классе используется super (), почему? - PullRequest
0 голосов
/ 07 мая 2019

Я новичок в программировании на python и путаюсь с концепцией oops в python.Я знаю, что 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)

Ответы [ 2 ]

2 голосов
/ 07 мая 2019

BahdanauAttention наследуется от tf.keras.Model, то есть вызов super в пределах его init фактически вызывает метод init tf.keras.Model.

Еще одна вещь: Начиная с Python 3, вам не нужно передавать какие-либо аргументы в вызов super:

super().__init__()
0 голосов
/ 07 мая 2019

Я предлагаю вам прочитать сообщения о методе super() в Python 3, это сложно, особенно с множественным наследованием (даже если это не случайно), Как Python super () работает с множественным наследованием?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...