の数で、私は特定の方法でBase
クラスを持ち、ワット/任意のパラメータO:矛盾がベースのパラメータと子のメソッドシグネチャ
class Base():
def pretty_method(self):
print('Hi!')
そしてそこにいくつかのサブクラスがあり、彼らは新しいとpretty_method
で追加の手続きが必要パラメータx
。
class A(Base):
def pretty_method(self, x):
super().pretty_method()
print('X in A is {}'.format(x))
class B(Base):
def pretty_method(self, x):
super().pretty_method()
print('X in B is {}'.format(x))
したがって、私はクラスメソッドのシグネチャに矛盾があります。
class Base():
def pretty_method(self, x=None):
print('Hi!')
ちょっと無用であるが、一貫性に署名を保持します。私は、基本クラスの未使用x
パラメータを扱うことができ、他の手で
。 もっと好ましいアプローチは何ですか?
この場合、一貫性は必要ありません。このメソッドをオーバーライドして、なぜそれが基本クラスのメソッドと同じシグネチャを持つべきなのですか? – Kasramvd