インポートされたモジュールがあり、そのモジュールのインポートされたインスタンス内で特定の変数値を変更して実行する必要があります。モジュールをインポートしてモジュール内の変数値を変更して実行する方法
ご注意ください私は、従来の理由により、インポートされるモジュールを一度変更することはできません。ここで
は私がしようとしているものです:
は
var1 = 1
var2 = 2
if __name__ == '__main__':
print var1+var2
のように見えますが、今私は、b.pyに発信者をこれをインポートしています、私は、a.pyをインポートしたいモジュールを言いますスクリプト。私はそれをインポートしようとしている変数var1の値を変更し、runpyを使用して主なプログラムとしてそれを次のように実行します。
import runpy
import a
a.var1 = 2
result = runpy._run_module_as_main(a.__name__)
しかし、これだけではなく、予想通り4
として3
として結果を出力します。
これを達成するための他の方法は、a.pyで何も変更せずに(runpyを使用する以外は)ですか?任意のサードパーティのモジュールを開く限り、モジュールをインポートする必要はありません。
私はここでのpython 2.6
もしあなたが本当にこれをしたいのなら、あなたは 'ast'モジュールが必要になると私は信じています。 –
@WayneWerner – MohitC
あなたは*本当にこれをやってはならず、代わりにクラスを使うべきであることを教えてください。 –