ここには様々なバージョンのPythonが動作するいくつかのサーバーがあります。これらのサーバーでは、MySQLの対話が必要なスクリプトを実行しています。 Python MySQLdbモジュールを使用するラッパークラスを作成しましたが、古いモジュールではこのモジュールは存在しません。これを回避するには、通常のようにラッパークラスを使用する場合は、MySQLモジュールがサーバーに存在するかどうかを調べる必要があります。それ以外の場合は、bashを使用して作成したバックアップのMySQLクラスに切り替えます。Pythonクラスの選択
私の質問です:このような2つのクラスを切り替えるエレガントな方法はありますか?
私が考えることができる唯一の方法は、MySQLdbモジュールがロードされているかどうかに応じて、さまざまな機能を切り替えるMySQLラッパークラスの中に "if"ステートメントを入れることです。重要な点は、スクリプトが2つのクラスのどちらを使用しているかを認識していないことです。スクリプト自体のコードは、関係なく同じでなければなりません。私はPythonの初心者ですので、事前に助けていただきありがとうございます。
"これらのサーバでは...."スクリプトはPythonで書かれていますか?もしそうなら、あなたはPythonで継承を使うことができ、これにより混乱が減り、if-elseを間接呼び出しに変更することができます。クラシックなデザインパターンの原則。 –