python呼叫js的方法 js2py
阿新 • • 發佈:2020-12-07
python呼叫js的方法
安裝
pip install js2py
js2py的簡單用法
import js2py js = """ function add(a, b) { return a + b } """ add = js2py.eval_js(js) r = add(1, 2) + 3 print(r) >>>6
進階用法
js = """ var a = 10; function f(x) { return x*x }; """ context = js2py.EvalJs() context.execute(js) print(context.a) # 獲取值 10 print(context.f('9', 0,)) # 獲取函式並執行 81 print(context.f.toString()) # 獲取函式 function f(x) { [python code] } print(context.f.constructor) # 獲取函式 'function Function() { [python code] }' # 定製屬性 context.foo = [1,2,3] context.foo.push(4) print(context.foo.to_list()) # [1, 2, 3, 4]
執行結果
6 10 81 function f(x) { [python code] } 'function Function() { [python code] }' [1, 2, 3, 4]
資料型別轉換標
Boolean -> bool String -> unicode Number -> float (or int/long if whole number) undefined -> None null -> None OTHER -> JsObjectWrapper
JsObjectWrapper支援:getitem,getattr,setitem,setattr,repr和
call。此外,如果要將其
轉換為內建python型別,它具有to \ _list和to \ _dict方法。
js = js2py.eval_js('d={a: 1, b: 2}') print(js) # {'a': 1, 'b': 2} print(type(js)) # <class 'js2py.base.JsObjectWrapper'> #該型別為字典的儲存 print(js.a) # 1 # 取值方法 print(js['a']) # 1 # 取值方法 js.b = 20 # 修改屬性方法 print(js) # {'a': 1, 'b': 20} js ['c'] = 30 # 設定屬性方法 print(js) # {'a': 1, 'b': 20, 'c': 30} print(js.to_dict()) #{'a': 1, 'b': 20, 'c': 30} # 該方法轉化為字典方法