3
基本クラスによって実装される一連のメソッドを定義できる親クラスを作成する最適な方法は何ですか?Pythonの抽象化
クラスA
にはmethod_X
の2つのパラメータが必要ですが、クラスB
には同じメソッドに対して3つのパラメータが必要です。
どうすればこの問題を解決できますか?
class SuperClass:
def method_X(self):
...
class A(SuperClass):
def method_X(self, a, b):
...
class B(SuperClass):
def method_X(self, a, b, c):
...
あなたはこれに取り組むために、[デフォルト引数](http://docs.python-guide.org/en/latest/writing/gotchas/)を使用することができます。 – lmiguelvargasf
要するに:しないでください。あなたのサブクラスは、スーパークラスによって設定された契約を破っています。 –
あなたのコードはそれ自体で壊れていません(サブクラスがオーバーライドするメソッドのインターフェースを変更してはならないと言われていますので、それはちょっとお勧めできません)。どのようにコードを使用する予定ですか? – jdehesa