インポートする必要がある可能性のあるファイルの長いリストがあります。私はそれらのうちの1つだけを必要とし、それらはすべて同じインターフェースを持っています. (支払いを処理する支払いゲートウェイの選択)
すべてのゲートウェイ ファイルの名前を表す辞書があるとします。
すなわち
gateways = {
'1' : 'authorize',
'2' : 'paysimple',
'3' : 'braintreepayments',
'4' : 'etc',
}
データベースからの情報に基づいて、この辞書のキーを知っています。したがって、ゲートウェイ値が 1 の支払いプロセス要求を受信した場合、Authorize.net で処理する必要があることがわかります。A 2 は Pay Simple で処理されます。等。
恐ろしいステートメントのリストではなく、私が知っている情報で構築されたインポートステートメントを作成できるようにしたいと考えていますelif
。
以下の簡単な方法を検討してください。
# For the purposes of this example assume payment_gateway is defined
# elsewhere and represents the key to the dictionary
gateway_file = gateways.get(payment_gateway)
import_str = "from gateway_interface.%s import process" % gateway_file
gogo(import_str)
gogo
import ステートメントを実際にインポートさせる方法はどこにありますか。
そのようなことは可能ですか?