【PyExecJS】html
#encoding: utf-8 #author: walker # date: 2019-03-13 # summary: 利用 PyExecJS 調用 js 函數 import execjs JSCode = r''' function add(x, y) { return x + y; } ''' CTX = execjs.compile(JSCode) def test(): # 直接使用 print(execjs.get().eval('3+2')) # 調函數使用 print(CTX.call('add', 3, 6)) if __name__ == '__main__': test()
【Node.js】
node
#encoding: utf-8 #author: walker # date: 2019-03-13 # summary: 直接用 Node.js 調用 js 函數 from subprocess import check_output def test(): # 直接調用 bytesTxt = check_output('node -e console.log(3+2)', timeout=100) print(bytesTxt.decode('utf8').strip()) # 用 node 直接執行 js 腳本 bytesTxt = check_output(['node','t.js', '3', '6'], timeout=100) print(bytesTxt.decode('utf8').strip()) if __name__ == '__main__': test()
t.jspython
function add(x, y) { return x + y; } var args = process.argv.splice(2); console.log(add(parseInt(args[0]), parseInt(args[1])));
【Node.js 指定函數】ide
#encoding: utf-8 #author: walker # date: 2019-03-14 # summary: 直接用 Node.js 調用指定 js 函數 from subprocess import check_output JSCode = r''' function add(x, y) { return x + y; } function sub(x, y) { return x - y; } function foo(x) { return x; } ''' def test(): jscode = JSCode + 'process.stdout.write(add(3, 2).toString())' rtn = check_output('node', input=jscode, universal_newlines=True, timeout=100) print(rtn) if __name__ == '__main__': test()
【相關閱讀】函數
*** walker ***htm