Допустим, у меня есть следующая структура класса
import abc
class Likelihood(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def stat(self):
pass
@abc.abstractmethod
def pvalue(self):
pass
class B(Likelihood):
def stat(self):
return ('stat from B')
def pvalue(self):
which_stat = self.stat()
return ('pvalue from B using ' + which_stat)
class C(Likelihood):
def stat(self):
return ('stat from C')
def pvalue(self):
which_stat = self.stat()
return ('pvalue from C using ' + which_stat)
И я хочу создать новый класс D
, который будет иметь метод pvalue
из B и C , но используетсвой собственный stat
метод.Ниже приведен скелет с желаемым выводом методов:
class D (B,C):
def stat(self):
return ('stat from D')
def pvalue_from_c(self):
# Desired output is 'pvalue from C using stat from D'
def pvalue_from_b(self):
# Desired output is 'pvalue from B using stat from D'
Какой самый питонский способ сделать это?