概要
仕事で開発しているpythonの設計に関する質問です。
文字ばかりで見づらく申し訳ございません。
状況
同ディレクトリ上に5つのpythonファイルがあります。
親.py, 子1.py, 子2.py, 孫.pyにはクラスが1つずつあり、
実行.pyは実行用のファイルです。
子1と子2のクラスはどちらも親のクラスを継承していて、
孫のクラスは子1と子2のクラスを継承しています。
いわゆる菱形継承です。
phpが実行.pyを叩いて、実行.pyのなかで孫のインスタンスを作成し、
孫の中のインスタンスメソッドを実行するというイメージです。
孫のクラスは2つインスタンスメソッドを持っていますが、
それぞれが子1、子2のクラスにのみ対応しています。
phpに実行.pyを叩かせた時の引数によって場合分けされ、
どちらかのインスタンスメソッドしか呼び出しません。
つまり子1、子2のいずれか片方には縁のないままプログラムの一生を終えることになります。
先輩と吟味しましたがこの点は将来的にも変わりません。
ですがどちらのパターンでも親のもつインスタンスメソッドにはアクセスする必要があります。
質問内容
先の質問にて、明示的にどちらのクラスを経由させて親にアクセスさせられるかについては把握できましたが、
そもそも孫のクラスがどちらか片方しか継承されないようにすればいいと思いつきました。
他の処理との兼ね合いもあり、この菱形を解消するのは難しいのですが、
そのような孫のクラスの宣言方法はpython3にはあるのでしょうか。
回答3件
あなたの回答
tips
プレビュー