Подкласс: вызов метода суперкласса, правильный стиль - PullRequest
0 голосов
/ 14 января 2020

Предположим, что y является подклассом x. Какое выражение следующих вызовов метода в x является правильным стилем? Есть ли разница в семанти c?

class y(x):
   def __init__(self,text,s):
      x.__init__(self,text)
      self.something = self.superclassmethod(s) #or
      self.something = y.superclassmethod(self,s)

1 Ответ

1 голос
/ 14 января 2020

Избегайте жесткого кодирования родительских классов, что излишне затруднит попытки использовать подкласс Y, который использует множественное наследование. По той же причине используйте super вместо жесткого кодирования X.

class Y(X):
    def __init__(self, text, s):
        super().__init__(text)
        self.something = self.superclassmethod(s)

Это также будет продолжать работать правильно, если вы когда-нибудь решите переопределить superclassmethod в Y.

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