2
私は2つのクラスが1つの関数f(x)
以外の共通のものを共有しています。この場合pythonクラスの継承コードを再利用
class A(object):
def __init__(self):
// some stuff
def g(self):
// some other stuff
def f(self, x):
// many lines of computations
q = ...
y = ...
return y
class B(A):
def f(self, x):
// same many lines as in A
q = ...
y = ...
// a few extra lines
z = ... # z needs both y and q
return z
、私は、クラスBにゼロからf(x)
を定義する必要がありますか? A.f(x)
にコードを再利用するためのトリックはありますか?私は考えることができる
一つの方法は、その後、
def f(self.x):
y = A.f(self, x)
// a few extra lines
z = ... # using y and self.q
return z
それともA.f(x)
がf(x)
のBの定義にA.f(self, x)
を呼び出し、その後、q
とy
の両方を返してみましょう次の操作を行い、q
インスタンスプロパティself.q
を作ることです。
これは標準的な方法ですか?より良いものがありますか?
'self.q'は、インスタンスのプロパティになります。 –
が修正されました。ありがとう。 – nos
私にとって有効なアプローチのようです。 'B'が' g'関数を継承しないのは問題ですが? –