オンラインの Python シェルを構築しようとしています。のインスタンスを作成してコマンドを実行しInteractiveInterpreter
、コマンドを使用しますruncode
。そのためには、インタープリターの状態をデータベースに保存して、グローバルおよびローカル名前空間の変数、関数、定義、およびその他の値をコマンド間で使用できるようにする必要があります。InteractiveInterpreter
後で取得local
してコンストラクターに引数として渡すことができるオブジェクトの現在の状態を保存する方法はありますInteractiveInterpreter
か、またはこれができない場合、言及された機能を実現するためにどのような代替手段が必要ですか?
以下は、私が達成しようとしているものの擬似コードです
def fun(code, sessionID):
session = Session()
# get the latest state of the interpreter object corresponding to SessionID
vars = session.getvars(sessionID)
it = InteractiveInterpreter(vars)
it.runcode(code)
#save back the new state of the interpreter object
session.setvars(it.getState(),sessionID)
ここで、セッションは必要なすべての情報を含むテーブルのインスタンスです。