У меня есть класс Base
, который наследуется двумя классами Adder
и subtractor
, в котором я переопределил метод, названный test_func()
, для адаптации к соответствующим свойствам класса.
class Base():
def __init__(self, K):
self.K = K
def test_func(self):
'Must be overridden since used by another_func()'
return self.K
def another_func(self):
return self.K * self.test_func()
class Adder(Base):
def __init__(self, K, M):
Base.__init__(self, K)
self.M = M
def test_func(self):
return self.M + self.K
class Subtractor(Base):
def __init__(self, K, N):
Base.__init__(self, K)
self.N = N
def test_func(self):
return self.N - self.K
Я пишу суперкласс с именем Algebra
, который наследует Adder
и Subtractor
.
class Algebra(Adder, Subtractor):
def __init__(self, K, M, N):
Adder.__init__(self, K, M)
Subtractor.__init__(self, K, N)
Теперь я хочу использовать метод test_func()
выборочно из Adder
или Subtractor
в суперкласс Algebra
. Есть ли способ, которым я могу сделать это? Я пытался
G = Algebra(K=2, M=5, N=7)
G.test_func()
>> 7
, но он принимает метод только из класса Adder
. Можно ли сказать суперклассу, из какого класса будет оцениваться метод? Например,
G.test_func('Adder')