1

PyV8 を Python に実装しました。次のようなJavaScriptファイルの例があります。

メイン-js.js:

var numOne = 1+2;
var numTwo = 3+1;
var numThree = 5;

PyV8で各変数をPythonに読み込むにはどうすればよいですか? これまでのところ、ctxt.eval(open("main-js.js").read()) でファイルを開いて読みました。しかし、ファイルから各変数を取得する方法がわかりません。pyv8 のドキュメントが不足しているため、これを見つけるのは困難です。

4

1 に答える 1

3

JSContextオブジェクトには、コンテキストのローカル変数の辞書である属性localsがあります。だから、あなたが欲しいctxt.locals["numOne"]など。

それを行う別の方法:eval()戻り値を持ちます。これは、最後に評価されたステートメントの値です。したがって、関心のある変数を評価する JavaScript ステートメントを実行することもできます。この場合、それらの JavaScript 配列を作成するだけで、必要な Python 変数に展開できます。ファイルから読み取ったコードにステートメントを追加するか、別のステートメントを実行することでこれを行うことができますeval()

with PyV8.JSContext() as ctxt:
    with open("main-js.js") as jsfile:
        ctxt.eval(jsfile.read())
    numOne, numTwo, numThree = ctxt.eval("[numOne, numTwo, numThree]")
于 2013-05-16T19:31:24.510 に答える