Как переопределить один и тот же родительский класс в 2 классах? - PullRequest
0 голосов
/ 17 апреля 2020

Итак, давайте предположим, что это есть в библиотеке -

class A():
  ....

class B(A):
  ....

class C(A):
  ....

Есть ли способ переопределить __init__() в классе A, прежде чем он будет унаследован дочерними классами. Так что-то вроде этого

import A as _A

#Then override the __init__()
class A(_A):
  def _init__():
     .....
     super().__init__()

Теперь я хочу, чтобы этот класс A использовался для наследования в дочерних классах B и C, а не в оригинальном A.

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете заменить функции одного класса другими (обычно это не рекомендуется). Например в отдельном модуле:

import A.A as _A

old_init = _A.__init__

def new_init(self):
    .....
    old_init(self)

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